我有两个python文件,两者都在同一目录级别,如此
project
|> tasks.py
|> queue.py
我在tasks.py
档案
def foo(message):
# perform some functions on message data
# blah blah
和queue.py
文件中的另一个函数,如此
import project.tasks
def run_task(function_name, data):
# function name is a string which tells which function to call in tasks.py file
return getattr(project.tasks, function_name)(data)
我不想硬编码我的函数名。我想基于function_name
参数动态访问它们。我的tasks.py
变得非常大,因此我想将它分成几部分。我做的是将tasks.py
文件移动到这样的python包中。
project
|> tasks
|> __init__.py
|> tasks.py
|> queue.py
我想问的问题是我如何修改我的run_task
函数以便为这个结构工作。作为getattr
函数任务的第一个参数是一个对象。有没有其他可用的选项,我可以用来访问task
包中的函数。?
答案 0 :(得分:0)
来自@jonrsharpe评论的回答。
将以下内容放入__init__.py
来自.tasks import *
从任务模块中公开tasks.py
中的所有名称。对tasks
包中的所有文件执行此操作。