python系列教程247——变态

是的,你没有看错,今天这篇文章的标题是“变态”。

图片1.png

上一篇文章我们学习了多态,在一些编程语言中,多态必须通过继承来实现。但是,Python的多态却很“变态”,它可以随便实现!具体怎么个随便法,下面我就通过简单代码来给大家讲述。

下面代码定义了一个Bird鸟类和一个Airplane飞机类。两个类都有一个名为fly的方法。

class Bird:
    def fly(self):
        return "Flying high!"

class Airplane:
    def fly(self):
        return "Soaring through clouds!"

下面代码定义了一个函数perform_fly,她接受一个对象作为参数,里面会调用该对象的fly方法。

def perform_fly(obj):
    print(obj.fly())

下面代码分别将Bird和Airplane类的对象传入perform_fly函数,结果是perform_fly函数分别执行了两个类的fly方法,得到了不同的输出。同一个函数同一行代码拥有了不同的形态,也就是上一篇文章我们学习的多态。

# 使用多态
bird = Bird()
plane = Airplane()
perform_fly(bird)   # 输出: Flying high!
perform_fly(plane)  # 输出: Soaring through clouds!

这段代码在一些编程语言环境中是个bug是会报错的,因为在这些语言中Bird和Airplane要继承同一个父类而且父类中还必须要有fly方法,这样才能实现多态。但是Python就不管这些,不管是什么类,即使是那种八竿子打不着的两个毫无关联的类,只要实现了同名的方法,那么就可以实现多态。这从一些编程语言的角度来说,的确是很疯狂很变态。有些编程语言的程序员可能一时都接受不了这么“变态”的多态。

挤时间给大家写文章,还望同学们能点点不要钱的赞,关注收藏分享,谢谢!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容