У меня есть два сценария main1 и main2, которые нужно разделить. Они оба вызывают средний скрипт (например, соединение с базой данных и запрос). Сам запрос поступает из sub1.py для main1 и sub2.py для main2.
В настоящее время я вызываю middle с параметром, указывающим источник. Можно ли это упростить?
#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
Потенциальным решением является дублирование myfunction в middle.py, т.е. создание myfunction_main1 и myfunction_main2. Но это не выглядит элегантно.
Бонус: у меня есть дополнительные функции в middle.py, которые относятся только к main1, а не main2. Поскольку я вызываю все функции из main1 с помощью l oop, мне нужно установить в них также sh arg2, иначе я получу ошибку при пропущенном аргументе.
funs = [middle.fun1, middle.fun2, middle.myfunction]
for i in range(3):
funs[i](arg_i, 'main1')