Перевантаження операторів
Список таких "магічних" методів.
__new__ (cls [...]) - управляє створенням екземпляра. В якості обов'язкової аргументу приймає клас (не плутати з екземпляром). Повинен повертати екземпляр класу для його подальшої його передачі методу __init__.
__init__ (self [...]) - як уже було сказано вище, конструктор.
__del__ (self) - викликається при видаленні об'єкта складальником сміття.
__repr__ (self) - викликається вбудованою функцією repr; повертає "сирі" дані, що використовуються для внутрішнього представлення в python.
__str__ (self) - викликається функціями str, print і format. Повертає строкове представлення об'єкту.
__bytes__ (self) - викликається функцією bytes при перетворенні до байтам .
__format__ (self, format_spec) - використовується функцією format (а також методом format у рядків).
__lt__ (self, other) - x <y викликає x .__ lt __ (y).
__le__ (self, other) - x ≤ y викликає x .__ le __ (y).
__eq__ (self, other) - x == y викликає x .__ eq __ (y).
__ne__ (self, other) - x! = y викликає x .__ ne __ (y)
__gt__ (self, other) - x> y викликає x .__ gt __ (y).
__ge__ (self, other) - x ≥ y викликає x .__ ge __ (y).
__hash__ (self) - отримання хеш-суми об'єкта, наприклад, для додавання в словник.
__bool__ (self) - викликається при перевірці істинності. Якщо цей метод не визначений, викликається метод __len__ (об'єкти, що мають ненульову довжину, вважаються дійсними).
__getattr__ (self, name) - викликається, коли атрибут реалізації класу не знайдений в звичайних місцях (наприклад, у примірника немає методу з такою назвою).
__setattr__ (self, name, value) - призначення атрибута.
__delattr__ (self, name) - видалення атрибута (del obj.name).
__call__ (self [, args ...]) - виклик екземпляра класу як функції .
__len__ (self) - довжина об'єкта.
__getitem__ (self, key) - доступ за індексом (або ключу).
__setitem__ (self, key, value) - призначення елемента за індексом.
__delitem__ (self, key) - видалення елемента за індексом.
__iter__ (self) - повертає ітератор для контейнера.
__reversed__ (self) - итератор з елементів, наступних у зворотному порядку.
__contains__ (self, item) - перевірка на приналежність елемента контейнера (item in self).
Перевантаження арифметичних операторів
__add__ (self, other) - складання. x + y викликає x .__ add __ (y).
__sub__ (self, other) - віднімання (x - y).
__mul__ (self, other) - множення (x * y).
__truediv__ (self, other) - поділ (x / y).
__floordiv__ (self, other) - цілочисельне ділення (x // y).
__mod__ (self, other) - залишок від ділення (x% y).
__divmod__ (self, other) - приватна і залишок (divmod (x, y)).
__pow__ (self, other [, modulo]) - зведення в ступінь (x ** y, pow (x, y [, modulo])).
__lshift__ (self, other) - бітовий зсув вліво (x << y).
__rshift__ (self, other) - бітовий зсув вправо (x >> y).
__and__ (self, other) - бітове І (x & y).
__xor__ (self, other) - бітове виключає Або (x ^ y).
__or__ (self, other) - бітове АБО (x | y).
Підемо далі.
__radd__ (self, other),
__rsub__ (self, other),
__rmul__ (self, other),
__rtruediv__ (self, other),
__rfloordiv__ (self, other),
__rmod__ (self, other),
__rdivmod__ (self, other),
__rpow__ (self, other),
__rlshift__ (self, other),
__rrshift__ (self, other),
__rand__ (self, other),
__rxor__ (self, other),
__ror__ (self, other) - роблять те ж саме, що і арифметичні оператори, перераховані вище, але для аргументів, що знаходяться праворуч, і тільки в разі, якщо для лівого операнда не визначений відповідний метод.
Наприклад, операція x + y буде спочатку намагатися викликати x .__ add __ (y), і тільки в тому випадку, якщо це не вийшло, буде намагатися викликати y .__ radd __ (x). Аналогічно для інших методів.
Йдемо далі.
__iadd__ (self, other) - + =.
__isub__ (self, other) - - =.
__imul__ (self, other) - * =.
__itruediv__ (self, other) - / =.
__ifloordiv__ (self, other) - // =.
__imod__ (self, other) -% =.
__ipow__ (self, other [, modulo]) - ** =.
__ilshift__ (self, other) - << =.
__irshift__ (self, other) - >> =.
__iand__ (self, other) - & =.
__ixor__ (self, other) - ^ =.
__ior__ (self, other) - | =.
__neg__ (self) - унарний -.
__pos__ (self) - унарний +.
__abs__ (self) - модуль (abs ()).
__invert__ (self) - інверсія (~).
__complex__ (self) - приведення до complex.
__int__ (self) - приведення до int.
__float__ (self) - приведення до float.
__round__ (self [, n]) - округлення.
__enter__ (self), __exit__ (self, exc_type, exc_value, traceback) - реалізація менеджерів контексту.