2

有一个函数具有参数的默认值:

def g(y, z = "default"):
    print  y, z

我想从函数“f”调用这个函数,除其他外还应该包含一个参数“z”,它应该是可选的,即“f”的用户应该能够在有或没有提供的情况下调用“f” “z”的值。如果他调用“f”而不在参数列表中传递“z”,“f”应该调用“g”,以便最后使用“z”的默认值。用作默认值的值(在本例中为“默认”)在代码中应该只出现一次。

4

2 回答 2

1

Use **kwargs:

def f(**kwargs):
    g("fixed-y", **kwargs)

f() # prints "fixed-y default"
f(z='mushroom') # prints "fixed-y mushroom"
于 2013-07-01T14:11:40.447 回答
1

听起来您的主要目标是确保"default"在代码中只出现一次。

def g(y, z = None):
    if z is None:
        z = "default"
    print y, z

def f(y, z = None):
    g(y, z)
于 2013-07-01T14:13:36.913 回答