为什么我的代码不起作用?

2024-10-01 17:37:33 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么这个不管用?在

for i in [a, b, c]:
    i.SetBitmap(wx.Bitmap(VarFiles[str(i)]))

我得到:

^{pr2}$

有趣的是,这是有效的:

 i.SetBitmap(wx.Bitmap(VarFiles["i"])) 

但这并不是:

 i.SetBitmap(wx.Bitmap(VarFiles[i]))

最后一个返回与i同名的wxpython对象,从而中断循环。所以我需要找到一种方法来返回这个对象的名称。但是i.__name__不起作用。在


Tags: 对象方法namein名称forwxpythonwx
3条回答

我就是这样“修复”我的代码的:

    list_a = [a, b, c]
    list_b = ["a", "b", "c"]
    [i.SetBitmap(wx.Bitmap(VarFiles[list_b[list_a.index(i)]])) for i in list_a]

因为回溯显示你有一个KeyError。由于i是一个对象,而str(i)得到了{},这样的键在VarFiles容器中不存在。在

它与for循环或您编写列表的方式无关。在

用一个箱子把它拆开。这个错误在哪里?在

s = str(a)
v = VarFiles[s]
w = wx.Bitmap(v)
a.SetBitmap(w)

相关问题 更多 >

    热门问题