1. ホーム 
  2. 備忘録 
  3. Python

多重継承

多重継承

Pythonでは継承したいクラスをカンマで区切って複数書くことで多重継承ができる

多重継承を行う際の注意点として、継承されるクラス内に同じ名前のメソッドが存在する場合、先に書いたほうのクラスのメソッドで上書きされることに留意する

上記の問題がエラーにつながりやすいため、基本的には設計段階で多重継承を行わないで済む構成を考えるべきであり非推奨だが、実態として大規模なプロジェクトの終盤などでやむをえず多重継承を使用するケースは多い(らしい)


class SampleA(object):
    def run(self):
        print('SampleA run')

    def sleep(self):
        print('SampleA sleep')


class SampleB(object):
    def run(self):
        print('SampleB run')

    def eat(self):
        print('SampleB eat')


class Test(SampleA, SampleB):
    pass


test = Test()
# 継承先の両方のメソッドが使える
test.sleep()  # SampleA sleep
test.eat()  # SampleB eat
# 継承先でメソッド名が被っている場合は左側のクラスが優先される
test.run()  # SampleA run