Python | クラスにおける各種メソッドの使い方
公開日:2021/6/2
Pythonのクラスには以下3種類のメソッドがある.これら3種類のメソッドについて説明をする.
・インスタンスメソッド
・クラスメソッド
・スタティックメソッド
◆実施環境
Python 3.8.8
■3種類のメソッドの説明
インスタンスメソッドとは,クラスにおける最も基本的なメソッドである.引数に"self"を取り,インスタンスを用いて呼び出すメソッドである.
クラスメソッドとは,デコレータである"@classmethod"を用い,引数に"cls"を取り,クラス変数を呼び出すメソッドである.
スタティックメソッドとは,デコレータである"@staticmethod"を用いる.クラス変数もインスタンス変数も呼び出すことはできない.両変数を使用しない場合,利用するが,利用頻度は低い.
# 1の処理
class Chocolate:
greeting = 'Hello'
def __init__(self,maker,brand,year): # コンストラクタ
self.maker = maker
self.brand = brand
self.year = year
def introduction(self): # インスタンスメソッド
print(f'{self.maker}は{self.year}年に{self.brand}を発売した')
@classmethod
def class_name(cls,msg1): # クラスメソッド
print('Hi classmethod')
print(cls.greeting) # クラス変数
print(msg1)
@staticmethod
def print_other(msg2): # スタティックメソッド
print('Hi staticmethod')
print(msg2)
Chocolate.class_name('ABC') # クラスメソッド呼び出し
myChoco1 = Chocolate('Meiji','Fran',1999) # インスタンス生成
myChoco1.introduction()
myChoco1.print_other('Morning, static1') # スタティックメソッド呼び出し方1
Chocolate.print_other('Morning, static2') # スタティックメソッド呼び出し方2
■実行結果
# 1の結果
Hi classmethod # クラスメソッドの出力
Hello
ABC
Meijiは1999年にFranを発売した # インスタンスメソッドの出力
Hi staticmethod # スタティックメソッドの出力
Morning, static1
Hi staticmethod
Morning, static2
以上