Pythonのクラスの中にメソッドを作成して、そのメソッドを同じクラスのメソッドから呼び出す方法をメモ書きします。
ちょっと何を言っているのか分かりにくいと思うので、さっそくそのソースを記載します。
ソースコード
class dog:
@staticmethod
def bark():
result = dog.wanwan()
return result
@staticmethod
def wanwan():
return "わんわん"
print(dog.bark())
実行結果
わんわん
@staticmethod
とはデコレータの一種で、関数の上に記述するとクラスをインスタンス化しなくてもその関数を実行できるようになります。
インスタンス化せずに関数を呼び出すにはクラス名.関数名
と記述します。
ここではdog.bark()
と記述しています。
それで今回やりたいことは、bark関数からwanwan関数を呼びだすことです。
wanwan関数を
@staticmethod
def wanwan():
return "わんわん"
のように作成し、それをbarkから呼びだすには、
@staticmethod
def bark():
result = dog.wanwan()
return result
のように記述します。
もちろん下記のように書き換えることも可能です。
@staticmethod
def bark():
return dog.wanwan()