Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python—通过循环字典实例化类_Python 3.x - Fatal编程技术网

Python 3.x python—通过循环字典实例化类

Python 3.x python—通过循环字典实例化类,python-3.x,Python 3.x,我对Python很陌生,但有Lua的背景。我确切地知道我将如何在卢阿实现这一目标。我确信答案已经存在,但我不知道如何提问——搜索什么术语?像“动态定义变量”这样的东西会返回很多参数,并建议使用字典,因为这就是它们的用途。但就我而言,字典似乎不起作用 一个简明示例,其中ButtonID正在创建button类的实例: Button1 = Button(8) Button2 = Button(3) Button3 = Button(432) ButtonClose = Button(5004) 由于

我对Python很陌生,但有Lua的背景。我确切地知道我将如何在卢阿实现这一目标。我确信答案已经存在,但我不知道如何提问——搜索什么术语?像“动态定义变量”这样的东西会返回很多参数,并建议使用字典,因为这就是它们的用途。但就我而言,字典似乎不起作用

一个简明示例,其中ButtonID正在创建button类的实例:

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)
但这似乎不可能,因为我遇到了一个错误:

AttributeError:“dict”对象没有属性“Button1”


请帮助?

您的dict映射有问题。应该改成

btns = {}
btns["Button1"] = Button(8)
然后btns字典中的字符串Button1将包含Button对象。

1对于btn,BtnList中的ID应该是btn,BtnList.items中的ID。2在Python中,btns.Button1=Button8是属性赋值。您需要BTN[Button1]=Button8。