非常简单;初级班

时间:2015-03-17 21:39:55

标签: python class

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的功能吗?我基本上想要说狗有皮毛,因此是真正的动物。

感谢所有人帮助新手。

1 个答案:

答案 0 :(得分:2)

你至少有两个错误:

  • 您需要将fur变量称为self.fur,因为它不是局部变量而是实例/类上的变量

  • Dog类中,您调用变量has_fur,但在父类中,它只调用fur