Member 13481555 Ответов: 0

Функция обработки в значениях функции по умолчанию


Я пишу функцию, которая вызывает несколько других функций с аргументами по умолчанию. Я явно передавал каждый параметр внутренних функций внешней функции, но это привело к тому, что список параметров внешней функции стал очень длинным. Есть ли общий способ справиться с этим? Ниже приведен пример того, что я делал и ищу то, что является обычной практикой.
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
И это действительно единственный способ сделать это с длинными списками.

0 Ответов