__repr__— developer repr (eval-safe),__str__— user-friendly string__len__,__getitem__,__setitem__— sequence protocol__enter__/__exit__— context manager__eq__,__lt__,__hash__— comparison và hashability__call__— cho phép gọi instance như function__iter__/__next__— iterator protocol
Pitfall: Khi override __eq__, Python tự động set __hash__ = None — phải define __hash__ thủ công nếu muốn dùng object trong set/dict.