2017-01-28 5 views
0

Как показано в коде, Dog является подклассом Pet. Когда я создаю экземпляр Dog, я не могу получить его species. Кстати, я следую this article?Почему мой класс python не работает?

class Pet(object): 

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

    def getName(self): 
     return self.name 

    def getSpecies(self): 
     return self.species 

    def __str__(self): 
     return "{0} is a {1}".format(self.name, self.species) 


class Dog(Pet): 

    def __int__(self, name, chaseCats): 
     Pet.__init__(self, name, "dog") 
     self.chaseCats = chaseCats 

    def getChaseCats(self): 
     return self.chaseCats 

При создании экземпляра:

mister_dog = Dog("Huang ~", True) 
print mister_dog.getSpecies() 

Она возвращает: True, а не dog.

ответ

4

Это опечатка. Подкласс Dog первый метод называется __int__, а не __init__. Поэтому инициализатор не определяется в подклассе, и вы вызываете только базовый класс __init__.

Кстати, вы можете начать использовать метод super(), а не метод unbound.

+0

Спасибо, я проверил около получаса ... – buzhidao

Смежные вопросы