Pythonの特殊メソッドのまとめ
概要
Pythonでは、特定の名前を持つメソッドを定義してクラスのインスタンスに対する演算を定義できる。このようなメソッドを特殊メソッドspecial methods, magic methodsと呼ぶ。名前の前後に__
を付けて定義し、この特性からdunderメソッド(double underscore method)とも呼ばれる。
__init__
と__call__
__init__
: インスタンスの初期化のためのメソッド。インスタンスを定義する際にその中身が自動で実行される。__call__
: インスタンスが呼び出されたときに実行されるもの。関数のように使えるようにしてくれるもの。
class Add:
def __init__(self, a, b):
self.a = a
self.b = b
print(f"a = {self.a}, b = {self.b}")
def __call__(self):
c = self.a + self.b
print(f"{self.a} + {self.b} = {c}")
>>> c = Add(1,3)
a = 1, b = 3
>>> c()
1 + 3 = 4