Функция обработки в значениях функции по умолчанию
Я пишу функцию, которая вызывает несколько других функций с аргументами по умолчанию. Я явно передавал каждый параметр внутренних функций внешней функции, но это привело к тому, что список параметров внешней функции стал очень длинным. Есть ли общий способ справиться с этим? Ниже приведен пример того, что я делал и ищу то, что является обычной практикой.
class my_class: def inner1(self, arg1=1, arg2=2): return (arg1 + arg2) def inner2(self, arg3=3, arg4=4): return (arg3 * arg4) def outer(self, arg5, arg6, arg1=1, arg2=2, arg3=3, arg4=4): x1 = self.inner1(arg1, arg2) x2 = self.inner2(arg3, arg4) x3 = x1 + x2 + arg5 - arg6 return x3
Я в основном запускаю внешнюю функцию и время от времени могу захотеть изменить входные параметры arg1, arg2, arg3 и/или arg4. Я не хочу держать такой длинный список входных параметров для внешнего. Что тут можно сделать? Пожалуйста, приведите пример, поскольку я новичок в программировании. Спасибо!
Что я уже пробовал:
Я пробовал использовать __init__ для создания экземпляров переменных, но я не хочу изменять объект каждый раз, когда я хочу изменить arg1, например.
Я изучил *args и **kwargs, но поскольку это обязательные функциональные входы, я не уверен, что это сработает.
Richard MacCutchan
Я заглянул в *args и **kwargs
И это действительно единственный способ сделать это с длинными списками.