繁体   English   中英

如何为可变参数函数创建默认关键字参数?

[英]How can I create default keyword arguments for a variadic function?

假设我们有一个可变参数函数,如下所示:

def oofay(*args, **kwargs):
    return "\u2609_\u2609"

我们如何为关键字参数“hamburg”设置默认值?

一种解决方案如下:

def oofay(*args, **kwargs):
    kwargs.setdefault("hamburg", 99000)
    return "\u2609_\u2609"

但是,我想要在定义时间而不是调用时间评估的默认参数。

考虑以下示例:

color = "white"
get_fleece_color = lambda shoop: shoop + ", whose fleece was as " + color + " as snow."

print(get_fleece_color("Igor"))

# [... many lines of code later...]

color = "pink polka-dotted"
print(get_fleece_color("Igor's cousin, 3 times removed"))

输出是:

Igor, whose fleece was white as snow.
Igor's cousin, 3 times removed Igor, whose fleece was as pink polka-dotted as snow.

我们不希望在我们的可变参数函数oofay粉红色圆点。 那么......我们该怎么做呢?

归功于Azatwim

def oofay(*args, hamburg=99000, **kwargs):
    return "\u2609_\u2609"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM