我正在尝试访问扩展类中的父成员变量。但是运行以下代码..。
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'
我做错了什么?
发布于 2012-04-09 01:15:01
您混淆了类属性和实例属性。
print self._haircolor
发布于 2012-04-09 01:17:21
您需要的是实例属性,而不是类属性,因此应该使用self._haircolor
。
而且,你真的应该在__init__
中使用super
,以防你决定将继承更改为Father
或其他什么。
class Child(Mother):
def __init__(self):
super(Child, self).__init__()
def print_haircolor(self):
print self._haircolor
https://stackoverflow.com/questions/10064688
复制相似问题