Python継承のsuper()とは?
Pythonではあるクラス(子クラス)で別のクラス(親クラス)を継承できます。
継承することで、親クラスのメソッドを子クラスから呼び出すことができます。
その際に使うのがsuper()です。
super()の使い方
super().親クラスのメソッド # python3系での標準の書き方
super()を呼ぶことで親クラスのメソッドなどを呼び出すことができます。
サンプルプログラム
# 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 calcuration(math):
"""多重継承
:param math: mathクラス
"""
def __init__( self , val1 =2 , val2 = 2):
"""初期化
:param val1: 数値1
:param val2: 数値2
super().__init__()で初期化
"""
super().__init__(val1,val2)
print( "計算 val1:" + str(self.val1) + "val2:" + str(self.val2) )
# 計算
calc = calcuration()
print( calc.calc())
mathクラスにはコンストラクタとcalcメソッドを持っています。
calcurationクラスではmathクラスを継承しています。
calcurationクラスのコンストラクタの中でsuper()を使いmathクラスのコンストラクタを呼び出しています。
実行結果
足し算 val1:2val2:2
計算 val1:2val2:2
4