Skip to main content
 首页 » 编程设计

python之程序在将字典传递给函数参数时显示 TypeError

2025年05月04日20arxive

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') 

这没有多大意义,因为(如错误中所报告的)变量标识符不能仅使用数字来命名。函数需要正确的变量标识符,但您使用的是数字,因此会引发错误。