猿问

Python 类作为类变量

我正在创建两个类,一个类需要保存另一个类的实例。但是我无法弄清楚如何正确初始化它。


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 变量放入开关中?


斯蒂芬大帝
浏览 150回答 1
1回答

呼唤远方

我对此的理解是每个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(...)
随时随地看视频慕课网APP

相关分类

Python
我要回答