我正在创建两个类,一个需要保存另一个的实例。但是我不知道如何正确初始化它。
class Buttons:
def __init__(self, number, scene):
self.DICT = {}
self.number = number
self.DICT[number] = scene
def add_btn(self, number, scene):
self.DICT[number] = scene
class Switches:
enclosure_name = ""
gatewate_name = ""
enclosure_id = 0
switch_name = ""
switch_location = ""
switch_device_id = 0
switch_mac = 0
switch_termination = 0
switch_group = 0
Buttons buttons = Buttons()
我计划创建许多开关,每个开关有2到6个按钮。每个按钮都有一个数字和一个动作。如何将Buttons变量放入开关中?
答案 0 :(得分:0)
我对此的理解是,每个Switch
将包含一个Buttons
对象,该对象包含代表多个按钮的字典。
Switches
类表示多个开关:
只需为每个开关设置一个按钮属性:
class Switch:
def __init__(self):
self.switches = {}
def add_switch(self, number, buttons):
self.switches[number] = buttons
在Buttons
对象中创建开关传递时:
switches = Switches(b)
b = Buttons(2, "scene")
switches.add_switch(10, b)
您仍然可以访问开关的基础按钮。例如,将按钮添加到第十个开关:
switch.switches[10].add_btn(...)
如果愿意,可以实现__getitem__
,以便可以直接为switch
编制索引。在Switches
内部:
def __getitem__(self, item):
return self.switches[item]
使用这种方法,您可以直接添加按钮:
switch[10].add_btn(...)