首页 > 解决方案 > Python中的多态性通过抽象

问题描述

我正在尝试通过抽象在 python 中实现多态性。这是我的代码:

class Animal:
    def talk(self):
        print('Hello')

class Dog(Animal):
    def talk(self):
        print('Bark')

class Cat(Animal):
    def talk(self):
        print('meow')

myObj = Dog()
print(myObj.talk())

这达到了目的,除了当我创建一个对象并打印时,我得到以下输出:

Bark
None

我期待得到公正Bark。谁能向我解释为什么None也打印?

标签: python

解决方案


None是该方法的返回值talk(),因为该方法没有显式返回任何值。如果你执行myObj.talk()(没有print())你只会得到Bark


推荐阅读