python - 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
也打印?
解决方案
None
是该方法的返回值talk()
,因为该方法没有显式返回任何值。如果你执行myObj.talk()
(没有print()
)你只会得到Bark
。
推荐阅读
- ios - 在嵌套对象上使用 for 循环
- javascript - Stack Navigator 抽屉图标单击抽屉未打开但滑动打开时
- javascript - 如何在 React Native 中集成 QuickBlox?
- javascript - JavaScript - 解析 json 对象时遇到问题
- c# - 在 Linq 中创建对象的新实例
- java - 尝试异步引导 Hibernate 时出现 Spring Boot 2.1.0 错误
- windows-installer - 使用 NSIS 卸载 windows 注册表项时,我们是否需要从 windows 注册表中删除每个条目?
- numpy - 通过广播对轴上的 np.minimum 和 np.minimum 进行矢量化
- r - 如何在 biclust 热图中显示行名和列名?
- wordpress - Wordpress 两步自动回复表单提交