我正在python中使用tkinter,我有一个恼人的bug,我似乎无法修复,尽管答案可能很明显。在
我试图用字符串调用字典,但由于某些原因,我得到了错误: 类型错误:不可损坏的类型:StringVar。以下是与该问题相关的代码片段:
from Tkinter import *
gpa = Tk()
weightsy = {'0': 2, '.1': 6, '.25':.2, '.5':.56, '.75':75, '1':12}
acadw = StringVar()
acadw.set(".1")
print (weightsy.get(acadw)) #Here is the issue; it should return the integer 6.
mainloop()
另外,如果我删除了与tkinter相关的代码(比如import,gpa=Tk(),StringVar,.set,mainloop()),它就可以工作了,所以我认为这是一个与tkinter相关的问题。在
正如您必须调用}数据。在
StringVar
对象的set
方法一样,您还需要调用get
来检索{字典不知道如何将对象转换为字符串,因此它尝试获取与
acadw
关联的值。您得到的是TypeError
而不是KeyError
,因为StringVar
对象碰巧是不可损坏的。在相关问题 更多 >
编程相关推荐