logo

Pythonの特殊メソッドのまとめ 📂プログラミング

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