Есть ли способ переместить аргументы функции, не скрывая того факта, что исходный вызов выполнял или не предоставлял необязательные аргументы?Функция обертки без скремблирования аргументов по умолчанию
def func1(a=x):
# do stuff
def func2(b=y):
# pass args to func1 without masking func1 defaults
return func1(?)
Вызов func2() должно привести к func1() вызывается без аргументов или, по крайней мере, с его аргументами по умолчанию, какими бы они ни были.
Следующие почти работают, но в принципе я не знаю, есть ли способ для func2 определить, были ли вызваны его значения по умолчанию.
def func2(b=y):
# this comes close but what if func2(y) is called?
if b == y:
return func1()
else:
return func1(b)
Если значение по умолчанию равно '1', какая разница в make, если вызывающая функция прошла в '1' или оставила ее в покое? –
func2 затем необходимо обновлять при обновлении func1. Если функции написаны разными авторами, это может быть проблематично. – Praxeolitic
Почему? Если я использую 'frobble = func2 (a = 9)', почему мне было бы интересно, чтобы аргумент 'func1()' по умолчанию менял значение с '9' на' 11'? –