我需要在python中获得一个变量的名称。 例如:
task = EmailTask()
我需要将“任务”映射到实际对象。你知道吗
这方面的用例如下: 我正在构建一个ETL工具,它将有许多可重用的通用任务,而不是用户为他创建的每个实例提供一个额外的任务名,我将使用用户选择的变量名。此变量名仅用于日志记录目的。用例示例:
process_task = MoveDataTask()
email_task = EmailTask()
job = Job(
tasks: [process_task, email_task])
job.start()
我将不得不使用globals(),因为任务将在父命名空间中声明。我知道我将对用户如何声明整个“作业”有一些限制,因为他必须将每个任务分配给一个变量名,而不是执行以下操作:
job = Job(
tasks: [MoveDataTask(), EmailTask()])
我知道globals()提供了我想要的东西,但我对使用它持保留态度,因为它有点不符合python的标准用法。另外,据我所知,globals()中的同一个对象可能有多个名称,因此,我需要以某种方式获取父名称(“process\u task”,“email\u task”来自上面的示例)。你知道吗
这种方法是否还有其他缺陷/问题/我遗漏的东西?你知道吗
创建助手函数(可能是为了命名空间而在专用模块中)并将其传递给作业:
相关问题 更多 >
编程相关推荐