簡體   English   中英

Python 3.6.0類繼承

[英]Python 3.6.0 Class Inheritance

class Animal:
def __init__(self, name, species): 
    self.name = name
    self.species = species

    def getName(self):
        return self.name

    def getSpecies(self):
        return self.species

    def __del__(self):
        print ("This came from del method")


class Dog(Animal):
    pass
    def __init__(self, name, isBig):
        Animal.__init__(self, name, "Dog")
        self.isBig = isBig

我一直在學習理解班級和兒童班級,並遇到以下問題。 實例化時

dog = Dog("Bob", True)

並嘗試從父類Animal類訪問方法getName(),我得到以下錯誤:

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
dog.getName()
AttributeError: Dog instance has no attribute 'getName'

是什么使我無法直接訪問父類的方法?

不要忘記縮進在Python中很重要!

這是在Animal類中包含所有方法的代碼的樣子:

class Animal:
    def __init__(self, name, species): 
        self.name = name
        self.species = species

    def getName(self):
        return self.name

    def getSpecies(self):
        return self.species

    def __del__(self):
        print ("This came from del method")

如果您錯過了一個縮進塊,Python會認為您已經完成了類定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM