DevelopmentLanguage:Python:Basics06
6.基本編-クラス(Python)
クラスの構造
・クラスの(object)は付けても付けなくても良い
・クラスのメソッドの場合「self」は第一引数に必ず付ける
・デストラクタ「del」は、オブジェクト(インスタンス)が使われなくなった時点で実行される
サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class my_status(object): # クラス def __init__(self, age, name, weight): # メソッド(コンストラクタ) self.age = age self.name = name self.weight = weight def print_name(self): # メソッド return self.name def print_age(self): # メソッド return self.age def print_weight(self): # メソッド return self.weight if __name__ == '__main__' : a = my_status(36, "mnz" , 62) # インスタンス print(a.print_age()) |
処理の流れ
クラスの継承
クラスを継承することで、他クラスで定義したメソッドを利用できる。
サンプル
1 2 3 4 5 6 7 8 9 10 |
class status(object): # クラス def print_status(self): # メソッド print( 'cold' ) class mnz_status(status): # クラスstatusを継承 pass if __name__ == '__main__' : mnz = mnz_status() mnz.print_status() |
メソッドのオーバーライド
継承したクラスのメソッドをオーバーライドできる。
サンプル
1 2 3 4 5 6 7 8 9 10 11 |
class status(object): # クラス def print_status(self): # メソッド print( 'cold' ) class mnz_status(status): # クラスstatusを継承 def print_status(self): # メソッドのオーバーライド print( 'cheerful' ) if __name__ == '__main__' : mnz = mnz_status() mnz.print_status() |
super()親クラスのメソッドを呼び出す。
親クラスのメソッドを呼び出したいときは以下のようsuper()を使います。
super()は「init」メソッド内でも使えます。
サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class status(object): # クラス def __init__(self, name=None): # メソッド(コンストラクタ) self.name = name def print_status(self): # メソッド print(self.name, 'cold' ) class mnz_status(status): # クラスstatusを継承 def __init__(self, name=None): super().__init__(name) # 親クラスのメソッドを呼び出す。 def print_status(self): super().print_status() # 親クラスのメソッドを呼び出す。 if __name__ == '__main__' : mnz = mnz_status( 'mnz' ) mnz.print_status() |
DevelopmentLanguage/Python/Basics06.txt · 最終更新: 2023/01/07 by admin