这是工作代码:
def g(y=10):
return y**2
def f(x,y=10):
return x*g(y)
print(f(5)) #->500
但是,假设我们不想记住并复制关键字参数的默认值 y
到外部函数的定义(特别是如果有多层外部函数)。在上面的示例中,这意味着我们要使用已经在 g
中定义的参数。
一种方法是:
def f(x,y=None):
if y==None: return x*g()
else: return x*g(y)
但是有没有更清洁的方法来做同样的事情?就像是:
def f(x,y=empty()):
return x*g(y)
原文由 Nik 发布,翻译遵循 CC BY-SA 4.0 许可协议
有趣的问题!这是另一种可能性,但这需要将第二个参数作为命名参数提交。