我一直在尝试测试 Python 中的多态性 由于某种原因,我的函数返回 None 。 你能从下面的代码中看出原因吗?提前致谢
class Animal:
__name = ""
__height = 0
__weight = 0
__sound = 0
def __init__(self, name, height, weight, sound):
self.__name = name
self.__height = height
self.__weight = weight
self.__sound = sound
def set_name(self, name):
self.__name = name
def get_name(self):
return self.__name
def get_sound(self):
return self.__sound
def toString(self):
return "{} is {} cm tall {} kg and says {}".format(self.__name, self.__height, self.__weight, self.__sound)
cat = Animal("Whiskers", 33, 10, "Meow")
-- 狗类:
class Dog(Animal):
__owner = ""
def __init__(self, name, height, weight, sound, owner):
self.__owner = owner
super(Dog, self).__init__(name, height, weight, sound)
def set_owner(self, owner):
self.__owner = owner
def get_owner(self):
return self.__owner
def get_sound(self):
return "Woff!"
def toString(self):
return "Overriden"
shnitzel = Dog("Shnitzel", 10, 15, 0, "CodingCode")
测试类:
class AnimalTesting:
def get_sound(self, animal):
animal.get_sound()
test_animals = AnimalTesting()
print test_animals.get_sound(cat)
该行:print test_animals.get_sound(cat)
返回无
再次感谢大家!
最佳答案
我认为这非常简单,与多态性无关。您只是忘记了返回
:
class AnimalTesting:
def get_sound(self, animal):
return animal.get_sound()
关于python - 基于多态性的函数返回 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52428416/