有没有一种方法可以转发函数参数而不隐藏原始调用是否提供可选参数的事实?
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)
最佳答案
确定参数是否保留的常用方法是使用 None
作为默认值。您不太可能使用 None
调用函数,因此它是一个有用的标记。
def func2(b=None):
if b is None:
return func1()
else:
return func1(b)
关于python - 包装函数而不破坏默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25749094/