特殊メソッド
特殊メソッドについて ▲
__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演算に対応する操作を定義する |
| ... | 他にも数値演算系はあるが省略する |
目次