Подобный вопрос задавался ранее , но я не знаю, что мне нравится ответ. У вас есть родительская функция, которая вызывает дочернюю функцию.
def parent(a):
return child(a) * 2
def child(a, b=10, c=20):
return a + b + c
Если я хочу, чтобы родительский метод выставлял b
и c
, я могу сделать что-то вроде ниже. Это работает, но кажется громоздким, так как я многого к этому стремлюсь (возможно, это наводит на мысль о другой проблеме).
def parent(a, b=None, c=None):
kwargs = {}
if b is not None:
kwargs['b']=b
if c is not None:
kwargs['c']=c
return child(a, **kwargs)
Есть ли лучший (т.е. меньше кода) способ сделать это?