为了账号安全,请及时绑定邮箱和手机立即绑定

Python 类作为类变量

Python 类作为类变量

斯蒂芬大帝 2021-10-12 16:44:09
我正在创建两个类,一个类需要保存另一个类的实例。但是我无法弄清楚如何正确初始化它。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(...)


查看完整回答
反对 回复 2021-10-12
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信