我正在创建两个类,一个类需要保存另一个类的实例。但是我无法弄清楚如何正确初始化它。class Buttons:def __init__(self, number, scene): self.DICT = {} self.number = number self.DICT[number] = scenedef add_btn(self, number, scene): self.DICT[number] = sceneclass Switches:enclosure_name = ""gatewate_name = ""enclosure_id = 0switch_name = ""switch_location = ""switch_device_id = 0switch_mac = 0switch_termination = 0switch_group = 0Buttons buttons = Buttons()我计划创建许多开关,每个开关有 2 到 6 个按钮。每个按钮都有一个数字和一个动作。如何将 Buttons 变量放入开关中?
1 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
我对此的理解是每个Switch将包含一个Buttons对象,其中包含一个代表多个按钮的字典。
的Switches类是多个交换机的表示:
简单地给每个开关一个按钮属性:
class Switch:
def __init__(self):
self.switches = {}
def add_switch(self, number, buttons):
self.switches[number] = buttons
在Buttons对象中创建 switch pass 时:
switches = Switches(b)
b = Buttons(2, "scene")
switches.add_switch(10, b)
您仍然可以访问开关的底层按钮。例如向第 10 个开关添加按钮:
switch.switches[10].add_btn(...)
如果你想要花哨,你可以实现 a__getitem__这样你就可以switch直接索引。内部Switches:
def __getitem__(self, item):
return self.switches[item]
使用此方法您可以直接添加按钮:
switch[10].add_btn(...)
添加回答
举报
0/150
提交
取消