我有两个形状相同但不共享父类的类:
class Panda(object):
def has_thumb(self):
return True
class Monkey(object):
def has_thumb(self):
return True
我想对每个子类进行子类化以添加一些功能:
class TalkingPanda(Panda):
def has_thumb(self):
print("I have a thumb")
return super().has_thumb()
class TalkingMonkey(Monkey):
def has_thumb(self):
print("I have a thumb")
return super().has_thumb()
有没有一种方法可以重构此代码以消除重复的代码?
答案 0 :(得分:3)
当然,由于您已经在使用super()
,因此可以为此使用mixin:
class TalkingAnimal:
def has_thumb(self):
print("I have a thumb")
return super().has_thumb()
class TalkingPanda(TalkingAnimal, Panda):
pass
class TalkingMonkey(TalkingAnimal, Monkey):
pass