def f(**kwargs):
print(kwargs)
d = {'0': 'a', '1': 'b', '2': 'c', '3': 'd'}
f(**d) # {'0': 'a', '1': 'b', '2': 'c', '3': 'd'}
d = {0: 'a', 1: 'b', 2: 'c', 3: 'd'}
f(**d) # TypeError: f() keywords must be strings
在这里,我在将字典键值更改为 int 类型时遇到 TypeError。 我可以知道为什么会出现此错误吗?
请您参考如下方法:
第二种情况的问题是你做的相当于
f(0 = 'a', 1 = 'b', 2 = 'c', 3 = 'd')
这没有多大意义,因为(如错误中所报告的)变量标识符不能仅使用数字来命名。函数需要正确的变量标识符,但您使用的是数字,因此会引发错误。
