繁体   English   中英

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

[英]Program shows TypeError while passing a dictionary into a function argument

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM