Python多重継承
Pythonクラスは多重継承に対応しています。
多重継承とは、複数のクラスを組み合わせて新しいクラスを定義することができます。
Pythonでは数値や文字列といった組み込み型のを継承して、新しいクラスを作ることができます。
組み込み型の持つ豊富な機能をそのまま引き継いで、新しい機能を持つ独自のクラスを作ることができます。
サンプルプログラム
# Description: 多重継承
class math(object):
"""足し算クラス
:param object: objectクラス
"""
def __init__( self , val1 =1 , val2 = 1):
"""初期化
:param val1: 数値1
:param val2: 数値2
"""
self.val1 = val1
self.val2 = val2
print( "足し算 val1:" + str(self.val1) + "val2:" + str(self.val2) )
def calc( self ):
"""計算
:return: 足し算結果
"""
return self.val1 + self.val2
class sub(object):
"""引き算クラス
:param object: objectクラス
"""
def __init__( self , val1 =1 , val2 = 1):
"""初期化
:param val1: 数値1
:param val2: 数値2
"""
self.val1 = val1
self.val2 = val2
print( "引き算 val1:" + str(self.val1) + "val2:" + str(self.val2) )
def calc( self ):
"""計算
:return: 引き算結果
"""
return self.val1 - self.val2
class calcuration( math , sub ):
"""多重継承
:param math: mathクラス
:param sub: subクラス
"""
def __init__( self , val1 =2 , val2 = 2):
"""初期化
:param val1: 数値1
:param val2: 数値2
"""
self.val1 = val1
self.val2 = val2
print( "計算 val1:" + str(self.val1) + "val2:" + str(self.val2) )
# 計算
calc = calcuration()
print( calc.calc())
このプログラムを単体で動かすと
self.val1=2とself.val2=2がcalcration()を呼び出し、newをかかずとも、そのまま初期化され
match()のcalc()が呼び出されて4が出力されます。
実行結果
計算 val1:2val2:2
4