我目前正在尝试在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)
但是我想知道这是否在某种程度上使继承无效?
无论我是否完全在错误的树上吠叫,我将不胜感激任何想法,提示或反馈!
谢谢
你近了 这有效:
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__。
ATTRS
self.ATTRS
__init__