Я хотел бы передать указанное количество функций в качестве аргументов самой внешней функции. Внутри средних функций я хотел бы вызвать произвольное количество функций. Итак, средняя функция - это группа для внутренних функций. На основании определенных критериев c группы функций могут вызываться или не вызываться.
В приведенном ниже примере самая внешняя функция принимает ровно 2 аргумента, но средняя функция должна принимать произвольное количество функций.
EG:
def al_func1():
print('al 1')
def al_func2():
print('al 2')
def ml_func1():
print('ml 1')
def ml_func2():
print('ml 2')
def function_to_connect(hostname: str, al, ml):
print(f'Connecting to {hostname}')
if 'al' in hostname:
al
elif 'ml' in hostname:
ml
def call_al(*al_functs):
al_functs
def call_ml(*ml_functs):
ml_functs
function_to_connect('ipi-al', call_al(al_func1(), al_func2()), call_ml(
ml_func1(), ml_func2()))
В основном это работает, но независимо от результата оператора «if» функции всегда выполняются, и порядок не соответствует моим ожиданиям.
Результат:
al 1
al 2
ml 1
ml 2
Connecting to ipi-al
Спасибо!