1. ホーム 
  2. 備忘録 
  3. Python

特殊メソッド

特殊メソッドについて

__init__ のようにアンダースコア2つでメソッド名を囲うような形式をとるメソッドを特殊メソッドという

__init__ 以外にも様々な特殊メソッドが用意されており、各種演算子や組み込み関数の操作の対象として独自のクラスを適用することができる

以下によく使われる特殊メソッドの一部を記載しておく

その他の特殊メソッドについては Python公式ドキュメント を確認すること

特殊メソッド 用途
インスタンスの生成と破棄
__new__(cls, ...) インスタンスを生成するために呼び出される
__init__(self, ...) インスタンス生成後、初期化するために呼び出される
__del__(self) インスタンス生成時に呼び出される
型の変換
__int__(self) オブジェクトをint型の値で返す
__bool__(self) オブジェクトが True/False のどちらであるか返す
__bytes__(self) オブジェクトをバイト文字列で表したものを返す
__str__(self) オブジェクトを表す文字列を返す
... 他にも変換系はあるが省略する
オブジェクトの比較
__eq__(self, other) self と other の値が等しいかどうか
__ne__(self, other) self と other の値が等しくないかどうか
__hash__(self) オブジェクトのハッシュ値を返す
__lt__(self, other) self が other より小さいかどうか(less than)
__le__(self, other) self が other 以下かどうか(less equal)
__gt__(self, other) self が other より大きいかどうか(greater than)
__ge__(self, other) self が other 以上かどうか(greater equal)
数値演算
__add__(self, other) self に other を加算する操作を定義する
__sub__(self, other) self から other を減算する操作を定義する
__mul__(self, other) self と other を乗算する操作を定義する
__truediv__(self, other) self と other を除算する操作を定義する
__and__(self, other) self と other のビット単位のAND演算に対応する操作を定義する
__or__(self, other) self と other のビット単位のOR演算に対応する操作を定義する
... 他にも数値演算系はあるが省略する

    参考文献

  1. Python公式ドキュメント 特殊メソッド名
  2. [Pythonチートシート]特殊メソッド編