python新手,目前正在学习类和OOP。我试图让以下简单的代码运行,但无法弄清楚为什么我收到错误。请参阅以下代码:
class Animal(object):
fur = True
def real_animal(self):
if fur:
print "Real animal"
else:
print "Fake animal"
class Dog(Animal):
fur = True
def __init__(self, name):
self.name = name
rover = Dog("Rover")
rover.real_animal()
我收到错误,说明未定义毛发。根据我的理解,类可以继承自类。所以,因为Rover是类Dog的一个实例,它是一类Animal。我不应该能够在Rover上运行基类Animal的功能吗?我基本上想要说狗有皮毛,因此是真正的动物。
感谢所有人帮助新手。
答案 0 :(得分:2)
你至少有两个错误:
您需要将fur变量称为self.fur
,因为它不是局部变量而是实例/类上的变量
在Dog
类中,您调用变量has_fur
,但在父类中,它只调用fur
。