我有两个脚本main1和main2需要分开。它们都调用中间脚本(例如,连接数据库和查询)。查询本身来自main1的sub1.py和main2的sub2.py。
[目前,我用表示原点的参数调用中间。可以简化一下吗?
#main1.py
import middle
middle.myfunction(arg_i, 'main1')
#main2.py
import middle
middle.myfunction(arg_i, 'main2')
#middle.py
import sub1, sub2
def myfunction(arg1, arg2):
if arg2 == 'main1':
...
sub1.anotherfunction
elif arg2 == 'main2':
...
sub2.yetanotherfunction
一种可能的解决方案是在middle.py中复制myfunction,即创建myfunction_main1和myfunction_main2。但这似乎并不优雅。
奖励:Middle.py中还有其他功能,它们仅与main1有关,与main2不相关。由于我要通过main1循环调用所有函数,因此我也需要在其中建立arg2,否则在缺少参数时会出错。
funs = [middle.fun1, middle.fun2, middle.myfunction]
for i in range(3):
funs[i](arg_i, 'main1')
您可以将__file__
作为arg2
传递