python多态
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class Anmail(object): def __init__(self,name): self.name=name def talk(self): return "Anmail talking" class Dog(Anmail): def __init__(self,name,age): super(Dog, self).__init__(name) self.age=age def talk(self): return "wangwangwang" class Cat(Anmail): def __init__(self,name,age): super(Cat,self).__init__(name) self.age = age def talk(self): return "miaomiaomiao" def anmail_talk(obj): return obj.talk() d=Dog("德国黑",3) c=Cat("波斯猫",3) print(anmail_talk(d)) print(anmail_talk(c))
优化后
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class Anmail(object): def __init__(self,name): self.name=name def talk(self): return "Anmail talking" @staticmethod def anmail_talk(obj): return obj.talk() class Dog(Anmail): def __init__(self,name,age): super(Dog, self).__init__(name) self.age=age def talk(self): return "wangwangwang" class Cat(Anmail): def __init__(self,name,age): super(Cat,self).__init__(name) self.age = age def talk(self): return "miaomiaomiao" d=Dog("德国黑",3) c=Cat("波斯猫",3) print(Anmail.anmail_talk(d)) print(Anmail.anmail_talk(c))