Python parent class accessing class variable of child class
我目前正在尝试在我的Python项目中实现一些继承,并且遇到了一个障碍。我正在尝试创建一个BaseParentClass,它将处理许多子类的基本功能。在这个特定的示例中,我试图用一些属性(设置为0)初始化一个实例,这些属性存储在子级中的类变量列表(称为attrs)中。我不确定如何在父类中使用这个属性。
1 2 3 4 5 6 7 8 9 10 11 | 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__() |
我可以将attr作为self.attrs存储在子级中,然后成功地在父级中使用self.attrs,但对于我来说,最好将它们存储为类变量。
或者,我可以将attrs作为参数传递,如下所示:
1 2 3 4 5 6 | class Child(Parent): #class variable ATTRS = [attr1, attr2, attr3] def __init__(): super(Child, self).__init__(ATTRS) |
号
但我想知道,这是否以某种方式破坏了最初使用继承的意义?
无论我是完全错误的选择,我都会感激任何想法、提示或反馈!
谢谢
你很亲密。这项工作:
1 2 3 4 5 6 7 8 9 10 11 | 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__() |
在这里,您将
加上上面的答案,
虽然attr是子类中的类变量,但是子类的实例变量能够访问类变量attr,因为python使用名称空间执行以下操作