多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Python中的多态如何理解? Python中多态的作用 让具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容(功能)的函数。 Python中多态的特点 1、只关心对象的实例方法是否同名,不关心对象所属的类型; 2、对象所属的类之间,继承关系可有可无; 3、多态的好处可以增加代码的外部调用灵活度,让代码更加通用,兼容性比较强; 4、多态是调用方法的技巧,不会影响到类的内部设计。 ### 多态的`应用场景` **1\. 对象所属的类之间没有继承关系** 调用同一个函数`fly()`, 传入不同的参数(对象),可以达成不同的功能 ``` class Duck(object): # 鸭子类 def fly(self): print("鸭子沿着地面飞起来了") class Swan(object): # 天鹅类 def fly(self): print("天鹅在空中翱翔") class Plane(object): # 飞机类 def fly(self): print("飞机隆隆地起飞了") def fly(obj): # 实现飞的功能函数 obj.fly() duck = Duck() fly(duck) swan = Swan() fly(swan) plane = Plane() fly(plane) ``` 上述代码执行的结果是 ``` 鸭子沿着地面飞起来了 天鹅在空中翱翔 飞机隆隆地起飞了 ``` **2\. 对象所属的类之间有继承关系(应用更广)** ``` class gradapa(object): def __init__(self,money): self.money = money def p(self): print("this is gradapa") class father(gradapa): def __init__(self,money,job): super().__init__(money) self.job = job def p(self): print("this is father,我重写了父类的方法") class mother(gradapa): def __init__(self, money, job): super().__init__(money) self.job = job def p(self): print("this is mother,我重写了父类的方法") return 100 #定义一个函数,函数调用类中的p()方法 def fc(obj): obj.p() gradapa1 = gradapa(3000) father1 = father(2000,"工人") mother1 = mother(1000,"老师") fc(gradapa1) #这里的多态性体现是向同一个函数,传递不同参数后,可以实现不同功能. fc(father1) print(fc(mother1)) ===运行结果:=================================================================================== this is gradapa this is father,我重写了父类的方法 this is mother,我重写了父类的方法 100 ```