Skip to content
16 / 22

Какие dunder-методы должен реализовать класс, чтобы стать полноценным value-объектом (`__repr__`, `__eq__`, `__hash__`, `__lt__`)?

Для value-объекта нужны: __repr__ — однозначное unambiguous представление для отладки; __str__ — человекочитаемое для пользователя; __eq__ — сравнение по значению; __hash__ — обязателен если объект иммутабелен и используется в set/dict (и должен быть согласован с __eq__); __lt__ + @functools.total_ordering — для сортировки и операторов <, >, <=, >=.

Какие dunder-методы должен реализовать класс, чтобы стать полноценным value-объектом (`__repr__`, `__eq__`, `__hash__`, `__lt__`)? | JScriptiser