Python——多态

        Python做为一门面对对象的语言,那么确定也是有多态这个属性的,这里主要跟C++的多态作一下类比ide

        先看下面的代码函数

                       图片.png        

这里能够看到,Child,Child2都是Parent的子类,他们分别重写了父类的print_func函数,所以能够看到下面的结果学习

图片.png

图片.png

        这是单独打印每一个对象来获得的结果,下面开始看Python的多态spa

图片.png

图片.png

图片.png

        这里能够看到,print_who这个函数只是将obj对象的print_func函数调用打印了一下。这里和C++的多态都是区别不大的。对象

        可是Python的多态比C++的更要牛逼一些,好比下面这个类blog

图片.png

        这时候noChild这个类跟Parent没有半点关系,那么咱们调用print_who还能打印出来东西吗?图片

图片.png

        没错,你真的没有看出,这个非子类的对象,只是由于有一个print_func函数,就能经过print_who来进行打印,是否是很神奇??it

        这就是Python与C++在多态上最大的区别,Python只要你有如出一辙的函数存在,那么他就能够按照多态的处理方式来给你处理。在有些书中,这个方法被称为“鸭子模型”。
class



欢迎添加QQ群一块儿学习
方法

图片.png

相关文章
相关标签/搜索