クラス関数

class TaxCalc:
  @classmethod
  def class_method(cls, price):
    assert cls.name == TaxCalc.name
    return int(price * 0.1)

  @staticmethod
  def static_method(price):
    return int(price * 0.1)

print(TaxCalc.class_method(1000)) TaxCalcクラスの class_method ですよ
print(TaxCalc.static_method(1000))

インスタンスメソッドとの区別をつけるため、関数の頭に@classmethodか@staticmethodをつける。

@classmethod クラスの情報が必要な時
@staticmethod クラスの情報が不必要

まだ、よくわからん。

コメント

タイトルとURLをコピーしました