函数对象属性 __kwdefaults__ 有什么用?

2024-01-03

函数对象有属性__defaults__ and __kwdefaults__。我发现如果一个函数有一些默认参数,那么它们将作为一个元组放入__defaults__ but __kwdefaults__ is 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 http://www.python.org/dev/peps/pep-3102/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数对象属性 __kwdefaults__ 有什么用? 的相关文章

随机推荐