python - 通过循环遍历字典来实例化类

时间:2018-01-19 02:45:26

标签: python-3.x

我对Python很陌生,但来自Lua背景。我确切地知道如何在lua中实现这一点。我确定答案已经存在,但我不知道如何提出问题 - 要搜索哪些术语?类似于'动态定义变量'返回了许多论点,以及使用词典的建议,因为它们就是这样。但就我而言,词典似乎不起作用。

一个精简的例子,其中Button(ID)正在创建一个按钮类的实例:

Button1 = Button(8)
Button2 = Button(3)
Button3 = Button(432)
ButtonClose = Button(5004)

由于我的实际UI中有超过4个按钮,并且我使用它们而不仅仅是实例化类对象,我希望使用某种循环结构来压缩代码。

BtnList = {'Button1' : 8, 'Button2' : 3, 'Button3' : 432, 'ButtonClose' : 5004,}

for btn,ID in BtnList:
    # some code here

我尝试在任何循环/函数之外使用以下内容,以避免在测试时出现范围问题:

btns = {}
btns.Button1 = Button(8)

但是,当我收到错误时,这似乎不可能:

  

属性错误:' dict'对象没有属性' Button1'

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

你有一个dict映射问题。它应该改为

btns = {}
btns["Button1"] = Button(8)

然后btns字典中的字符串“Button1”将包含Button对象。