Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 很简单,;初级班_Python_Class - Fatal编程技术网

Python 很简单,;初级班

Python 很简单,;初级班,python,class,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 = Tru

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()
我收到一个错误,说明毛发未定义。根据我的理解,类可以从类继承。所以,因为罗孚是狗类动物的一个例子。难道我不能在漫游者上运行基础类动物的功能吗?我基本上想说狗有皮毛,因此是真正的动物


谢谢大家帮助一个新手

您至少有两个错误:

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

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


您的缩进是否与上面的缩进完全相同?因为那会给你带来麻烦。。。类中的所有内容都需要缩进到类定义行下。@Ffisegydd在将
fur
更改为
self时。fur
inside
real_animal()
将允许代码运行,这是一个不完整的修复程序——除非您将
fur
作为一个实例变量(似乎您应该这样做),您不妨将其作为
Animal.fur
引用,以避免混淆。还有一个问题是随机的
现在什么也做不了。@JuniorCompressor-你怎么知道那是OP的代码-也许他把他的工作搞砸了indentation@Mark因为他没有解析错误