・クラスの(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()