在 Python 3 中可强制函数调用者使用关键词参数

在 Python 3 中,你可以在函数的参数列表中使用一个单独的星号(*)来要求调用者必须通过关键词参数的方式对 * 后的参数进行传参。​
>>> def f(a, b, *, c='x', d='y', e='z'):
...     return 'Hello'


如果你想给上边这个函数 f() 的c、d、e参数赋值,你必须以“key = value”这种命名参数的方式来传参。

>>> f(1, 2, c='p', d='q',e='v')
'Hello'

​否则,Python 解释器会报错:

>>> f(1, 2, 'p', 'q', 'v')
TypeError: "f() takes 2 positional arguments but 5 were given"


欢迎关注本站公众号【Python学与思】

python 学与思