・クラスの(object)は付けても付けなくても良い
・クラスのメソッドの場合「self」は第一引数に必ず付ける
・デストラクタ「del」は、オブジェクト(インスタンス)が使われなくなった時点で実行される
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())
クラスを継承することで、他クラスで定義したメソッドを利用できる。
class status(object): # クラス def print_status(self): # メソッド print('cold') class mnz_status(status): # クラスstatusを継承 pass if __name__ == '__main__': mnz = mnz_status() mnz.print_status()
継承したクラスのメソッドをオーバーライドできる。
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()は「init」メソッド内でも使えます。
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()