如代码所示,Dog
是Pet
的子类。当我创建Dog
的实例时,我无法获得species
的实例。顺便说一句,我正在关注this article?
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
。
答案 0 :(得分:4)
这是一个错字。子类Dog
第一个方法名为__int__
,而不是__init__
。因此,初始化程序未在子类中定义,并且您只是直接调用基类__init__
。
顺便说一句,你也可以开始使用super()
方法,而不是未绑定的方法。