у меня есть
A: логическое значение;
B: логическое значение;
A=0, B=0: run func1 and func2
A=0, B=1: run func1 and func3
A=1, B=0: run func2
A=1, B=1: run func3
Каждая функция имеет разные подписи с разным количеством аргументов.
Прямо сейчас я сделал что-то вроде этого:
if not A and not B: run func1 and func2
if not A and B: run func1 and func2
if A and not B: run func1 and func2
if A and B: run func1 and func2
но вместо вызова функций я повторяю один и тот же блок кода для каждого оператора if, я знаю, что он избыточен, как я могу заменить этот массивный блок операторов if на несколько строк кода, вызывающих нужный метод только один раз, когда это необходимо?
Я думал, что смогу использовать словарь отображения, подобный этому:
mapping_dict = {
True: {
True: [func3],
False: [func2]
},
False: {
True: [func1, func3],
False: [func1, func2]
}
но даже в этом случае мне нужно решение, чтобы определить, какие аргументы для передачи функции, в зависимости от функции, возвращаемой
mapping_dict[A][B]
Мой может быть конкретным случаем, но я хотел бы знать, как решить этот тип проблем с " D on't R epeat Y Мы сами "решение, есть ли образец для этой проблемы? как это работает? Это язык независимый?
Спасибо за ваше терпение