Python 入門コース / 第6章 オブジェクト指向(第40〜46回) / レッスン 44
特殊メソッド(__str__・__eq__)
Python の文法とつながる仕組み
前後をアンダースコア 2 つで囲んだメソッドを特殊メソッドと呼びます。print(obj) は obj.__str__()、a == b は a.__eq__(b)、len(obj) は obj.__len__() を呼んでいます。定義すれば、自作クラスでも同じ文法が使えます。
editor.py
__str__ と __repr__ の違い
__str__ は利用者向けの読みやすい表示、__repr__ は開発者向けの正確な表示です。デバッグで役立つのは __repr__ のほうなので、どちらか 1 つだけ書くなら __repr__ を書いてください(__str__ が無ければ __repr__ が代わりに使われます)。
__len__ と __contains__
コレクションのようなクラスを作るときは __len__(len())と __contains__(in)を定義すると、組み込み型と同じ感覚で扱えます。第 46 回の在庫管理クラスで実際に使います。
editor.py
✅ 理解度チェック
print(obj) したときに呼ばれる特殊メソッドは?