Python | クラスの多重継承の使い方
公開日:2021/6/4
Pythonでクラスを用いる際,複数のクラスから継承をすることができる.これをクラスの多重継承という.以下に多重継承の使い方を記す.
◆実施環境
Python 3.8.8
■クラスの多重継承を利用した基本的な構文
複数の親クラスを継承(多重継承)する際,子クラスの引数に親クラスのクラス名を以下のように記述する.
class ABC: # 親クラス1
省略
class DEF: # 親クラス2
省略
class GHI(ABC, DEF): #子クラス
以下に多重継承を利用した基本的な構文を記す.
# 1の処理
class Crow: # 親クラス1
def __init__(self,name):
self.crow_name = name
def crow_intro(self):
print(f'This is crow and name is {self.crow_name}')
def crow_call(self):
print('Crow call is ka ka')
class Sparrow: # 親クラス2
def __init__(self,name):
self.sparrow_name = name
def sparrow_intro(self):
print(f'This is sparrow and name is {self.sparrow_name}')
def sparrow_call(self):
print('Sparrow call is chun chun')
class Pigeon(Crow, Sparrow): # 子クラス
def __init__(self,crow_name,sparrow_name,pigeon_name):
Crow.__init__(self,crow_name)
Sparrow.__init__(self,sparrow_name)
self.pigeon_name = pigeon_name
def pigeon_intro(self):
print(f'This is pigeon and name is {self.pigeon_name}')
def pigeon_call(self):
Crow.crow_call(self)
Sparrow.sparrow_call(self)
print('Pigeon call is coo coo')
Bird_name = Pigeon('Kataro','Chuntaro','Cootaro')
Bird_name.crow_intro() # 8行目が出力
Bird_name.sparrow_intro() # 19行目が出力
Bird_name.pigeon_intro() # 32行目が出力
Bird_name.pigeon_call() # 35~37行目が出力
■実行結果
# 1の結果
This is crow and name is Kataro
This is sparrow and name is Chuntaro
This is pigeon and name is Cootaro
Crow call is ka ka
Sparrow call is chun chun
Pigeon call is coo coo
以上