python多态
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))
优化后
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))

浙公网安备 33010602011771号