委托函数调用中参数的Python默认值

时间:2013-07-01 14:08:40

标签: python default-value optional-parameters delegation

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

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

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

2 个答案:

答案 0 :(得分:0)

使用**kwargs

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

f() # prints "fixed-y default"
f(z='mushroom') # prints "fixed-y mushroom"

答案 1 :(得分:0)

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

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

def f(y, z = None):
    g(y, z)