函数对象有属性 __defaults__
和 __kwdefaults__
。我看到如果一个函数有一些默认参数,那么它们将作为元组放入 __defaults__
但 __kwdefaults__
是 None
。什么时候使用属性 __kwdefaults__
?
最佳答案
def foo(arg1, arg2, arg3, *args, kwarg1="FOO", kwarg2="BAR", kwarg3="BAZ"):
pass
print(foo.__kwdefaults__)
输出(Python 3):
{'kwarg1': 'FOO', 'kwarg2': 'BAR', 'kwarg3': 'BAZ'}
因为 *args
会吞掉所有非关键字参数,所以它后面的参数必须与关键字一起传递。参见 PEP 3102 .
关于python - 函数对象属性 __kwdefaults__ 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533929/