def f(*, arg1, arg2):
print(arg1, arg2)
尝试调用一下这个函数:
f('1', '2')
然后报错:
TypeError: f() takes 0 positional arguments but 2 were given
f() 接受 0 个位置参数,但给出了 2 个。
如果把实参全去掉,然后调用,还是报错:
TypeError: f() missing 2 required keyword-only arguments: 'arg1' and 'arg2'
f() 缺少 2 个必需的 keyword-only 参数。
如果把形参名加上去,然后调用:
f(arg1='1', arg2='2')
成功!
用这种形式才能调用成功,并且必须指定全部参数的值。
或者通过创建一个 dict 来调用。
d = {'arg1': '1', 'arg2': '2'}
f(**d)
本文探讨了Python中关键字参数的使用,特别是在定义函数时如何正确处理关键字参数。通过具体示例,解释了当函数定义中仅接受关键字参数时,如何调用函数以及可能遇到的错误类型。
455

被折叠的 条评论
为什么被折叠?



