Python做为一门面对对象的语言,那么确定也是有多态这个属性的,这里主要跟C++的多态作一下类比ide
先看下面的代码函数
这里能够看到,Child,Child2都是Parent的子类,他们分别重写了父类的print_func函数,所以能够看到下面的结果学习
这是单独打印每一个对象来获得的结果,下面开始看Python的多态spa
这里能够看到,print_who这个函数只是将obj对象的print_func函数调用打印了一下。这里和C++的多态都是区别不大的。对象
可是Python的多态比C++的更要牛逼一些,好比下面这个类blog
这时候noChild这个类跟Parent没有半点关系,那么咱们调用print_who还能打印出来东西吗?图片
没错,你真的没有看出,这个非子类的对象,只是由于有一个print_func函数,就能经过print_who来进行打印,是否是很神奇??it
这就是Python与C++在多态上最大的区别,Python只要你有如出一辙的函数存在,那么他就能够按照多态的处理方式来给你处理。在有些书中,这个方法被称为“鸭子模型”。
class
欢迎添加QQ群一块儿学习
方法