3
Допустим, у меня есть функция, как это:Изменение ключевых слов по умолчанию функции в Python
def func_1(a, b=1, c=None):
code here
Теперь я хочу сделать еще одну функцию, которая имеет те же внутренние, но разные аргументы ключевых слов.
def func_2(a, b=2, c='asdf'):
code here
Одним из вариантов было бы закрытие, как это:
def make_func(b, c):
def func(a, b=b, c=c):
code here
return func
func_1 = make_func(1, None)
func_2 = make_func(2, 'asdf')
Есть ли более кратким/Pythonic способ пойти по этому поводу?
Почему использовать замыкание? Просто позвоните один из другого: 'def func_2 (a, b = 2, c = 'asdf'): func_1 (a, b, c)' – jonrsharpe
@jonrsharpe: закрытие действует как завод, чтобы создавать больше таких функций. Я сделал тот же комментарий, а затем удалил его снова, как только понял. –
@MartijnPieters true, но генерация функций динамически кажется ненужной для небольшого числа (не говоря уже о том, что это может сделать жизнь сложнее для IDE). – jonrsharpe