Mix-In
性質や機能を個別のクラスに分けて、それらを他のクラスに組み合わせる手法。
Birdクラスにそれぞれ「飛行性」や「卵生」の性質を与え、その性質を引き継いだCrowクラスをインスタンス化し、lay_egg()メソッドを呼び出す例。
code:py
class Flyable:
def fly(self):
print("{} flying".format(self.__class__.__name__))
class Egglaying:
def lay_egg(self):
print("{} <3 🥚".format(self.__class__.__name__))
class Bird(Flyable, Egglaying):
pass
class Crow(Bird):
pass
Crow().lay_egg() # Crow <3 🥚