是否可以拥有一个包含python脚本的文件夹,它们都包含相同的方法名称。并有一个运行每个脚本函数的主python脚本。请注意,它们运行的函数名称相同但脚本不同。
这是为了创建一个运行每个任务的框架。每个任务都将具有相同的方法名称。主python将抓住每个任务并运行它。
文件布局:
master.py
tasks/
task1.py
task2.py
task1.py:
def task:
print("hello")
task2.py:
def task:
print("world")
注意:我不知道我可以完成多少任务
答案 0 :(得分:3)
在名为tasks
的{{1}}目录中创建一个新文件,然后输入以下内容:
__init__.py
如有必要,您可以动态生成所有模块名称的列表,但该变量必须命名为__all__ = ['task1', 'task2']
。
然后,在__all__
master.py
这是在Python项目中的目录中打包多个模块的首选方法。
答案 1 :(得分:0)
import task1
import task2
task1.task()
task2.task()
或者...
import task1 as task1_new_name
import task2 as task2_new_name
task1_new_name.task()
task2_new_name.task()
或者...
from task1 import task as task1 # or some other name
from task2 import task as task2 # or some other name
task1()
task2()
或......(请永远不要这样做)
exec("class task1:" + ("\n\t".join(open("task1.py").read().split("\n")))
exec("class task2:" + ("\n\t".join(open("task2.py").read().split("\n")))
task1.task()
task2.task()
编辑:
您可以使用exec
功能动态执行此操作。
for filename in filenames:
exec("import " + filename)
exec(filename + ".task()")
答案 2 :(得分:-1)
导入master.py
时,只需导入模块,然后从中调用该函数。
master.py
import task1
import task2
task1.task()
task2.task()
task1.py
def task():
print("hello")
task2.py:
def task():
print("world")