今天在项目中,遇到了一个python不能使用键值对传参的问题,看下面代码示例:
def test(name):
print(name)
正常我们调用可以
1. test("evan")
2. test(name="evan")
两种方式都是可以的 ,但是像python的一些内置函数,他底层调用的是C的API, 是不支持使用键值对作为参数传递的,例如
a = {}
a.get("name",default=None)
使用default= 参数就会报错 TypeError: get() takes no keyword arguments。
使用位置参数传递是可以的
a = {}
a.get("name",None)
结论: 在开发过程中遇到python内置函数,使用键值对进行参数传递需要谨慎测试。