特殊メソッド
特定の目的を達成するために用意されたメソッドのことを特殊メソッドという。
インスタンスの生成と削除のときに呼び出されるもの。
__init__メソッド:コンストラクタとよばれ、インスタンス生成時に一度だけ実行される。
__del__メソッド:デストラクタとよばれ、インスタンスが削除される時に一度だけ実行される。
その他、プログラムを簡潔に記述することを目的としたもの。
__len__メソッド:ユーザ定義クラスをlen関数【builtin】に対応させる。
__str__メソッド:ユーザ定義クラスをstr関数【builtin】に対応させる。
__bool__メソッド:ユーザ定義クラスをbool関数【builtin】に対応させる。
__float__メソッド:ユーザ定義クラスをfloat関数【builtin】に対応させる。
__int__メソッド:ユーザ定義クラスをint関数【builtin】に対応させる。
__call__メソッド:インスタンスに割り当てた変数をメソッドのように利用するためのもの。
code:special1.py
class Myclass:
def __call__(self):
self.data = 3.14
def __str__(self):
result = str(self.data)
return result
def __float__(self):
return float(self.data)
def __int__(self):
return int(self.data)
def __bool__(self):
return bool(self.data)
c1 = Myclass()
print('# 実験')
c1()
x = str(c1)
print(x, type(x))
x = float(c1)
print(x, type(x))
x = int(c1)
print(x, type(x))
x = bool(c1)
print(x, type(x))
/icons/hr.icon
※ ブラウザのバックボタンで戻る