我正在尝试从扩展类访问父成员变量。但是运行以下代码......
class Mother(object):
def __init__(self):
self._haircolor = "Brown"
class Child(Mother):
def __init__(self):
Mother.__init__(self)
def print_haircolor(self):
print Mother._haircolor
c = Child()
c.print_haircolor()
给我这个错误:
AttributeError: type object 'Mother' has no attribute '_haircolor'
我做错了什么?
答案 0 :(得分:31)
您正在混合类和实例属性。
print self._haircolor
答案 1 :(得分:20)
您需要实例属性,而不是类属性,因此您应该使用self._haircolor
。
此外,如果您决定将继承更改为super
或其他内容,您确实应该在__init__
中使用Father
。
class Child(Mother):
def __init__(self):
super(Child, self).__init__()
def print_haircolor(self):
print self._haircolor