简化main1.py或main2.py调用middle1.py来调用sub1.py或sub2.py

问题描述 投票:0回答:1

我有两个脚本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')
python function parameter-passing
1个回答
0
投票

您可以将__file__作为arg2传递

© www.soinside.com 2019 - 2024. All rights reserved.