在 Python 中,有几种不同的方法可以在函数中设置默认关键字参数。我知道的方法是:
def default(para_1: str = "this is", para_2: str = "an example"):
print(para_1, para_2)
和:
def keyword(**kwargs):
para_1 = kwargs.get("para_1", "this is")
para_2 = kwargs.get("para_2", "an example")
print(para_1, para_2)
这两个函数都可以这样调用:
default(para_1="this is", para_2="another example")
keyword(para_1="this is", para_2="another example")
达到同样的效果。我知道这两种方法之间的唯一区别是在使用可变默认值时,默认参数需要写成:
def mutable_default(para_1: dict = None):
if para_1 is None:
para_1 = {}
虽然 kwarg 方法不需要以相同的方式重新构建,因为它使用可变默认值是安全的:
def mutable_keyword(**kwargs):
para_1 = kwargs.get("para_1", {})
两者之间是否有首选方法?
请您参考如下方法:
是的。尽可能使用真实参数,因为它们将显示在函数的 help() 中。看到一个函数有一个签名 (**kwargs) 并没有告诉你它接受什么参数。查看签名 (search_term, whole_word=False, case_sensitive=True) 更有值(value)。
使用好的名称是一种文档形式,可以减少编写其他文档的需要(以及由于代码更改而导致文档过时的可能性)。
