是的,你没有看错,今天这篇文章的标题是“变态”。
上一篇文章我们学习了多态,在一些编程语言中,多态必须通过继承来实现。但是,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就不管这些,不管是什么类,即使是那种八竿子打不着的两个毫无关联的类,只要实现了同名的方法,那么就可以实现多态。这从一些编程语言的角度来说,的确是很疯狂很变态。有些编程语言的程序员可能一时都接受不了这么“变态”的多态。
挤时间给大家写文章,还望同学们能点点不要钱的赞,关注收藏分享,谢谢!