小编典典

Python父类访问子类的类变量

python

我目前正在尝试在Python项目中实现一些继承,但遇到了障碍。我正在尝试创建一个baseParentClass,它将处理许多子类的基本功能。在此特定示例中,我尝试使用多个属性(设置为0)初始化一个实例,该属性存储为Child中的类变量列表(称为ATTRS)。我不确定如何在父类中使用此ATTRS。

class Parent(object):
    def __init__():
        for attr in ATTRS:
            setattr(self, attr, 0)

class Child(Parent):
    #class variable
    ATTRS = [attr1, attr2, attr3]

    def __init__():
        super(Child, self).__init__()

我可以将ATTRS作为self.ATTRS存储在Child中,然后将self.ATTRS成功地存储在Parent中,但是对我来说,最好将它们存储为类变量。

另外,我可以像这样传递ATTRS作为参数:

class Child(Parent):
    #class variable
    ATTRS = [attr1, attr2, attr3]

    def __init__():
        super(Child, self).__init__(ATTRS)

但是我想知道这是否在某种程度上使继承无效?

无论我是否完全在错误的树上吠叫,我将不胜感激任何想法,提示或反馈!

谢谢


阅读 211

收藏
2021-01-16

共1个答案

小编典典

你近了 这有效:

class Parent(object):
    def __init__(self):
        for attr in self.ATTRS:
            setattr(self, attr, 0)

class Child(Parent):
    #class variable
    ATTRS = ['attr1', 'attr2', 'attr3']

    def __init__(self):
        super(Child, self).__init__()

在这里,您可以ATTRS在类级别设置列表,并可以self.ATTRS在baseclass的位置方便地访问它__init__

2021-01-16