Python 入門コース / 第6章 オブジェクト指向(第40〜46回) / レッスン 44

特殊メソッド(__str__・__eq__)

Python の文法とつながる仕組み

前後をアンダースコア 2 つで囲んだメソッドを特殊メソッドと呼びます。print(obj)obj.__str__()a == ba.__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) したときに呼ばれる特殊メソッドは?