Прочие методы (таблица)
| Метод | Перегружает | Вызывается | ||
|---|---|---|---|---|
| __init__ | Конструктор | При создании объекта: X = Class(args) |
||
| __del__ | Деструктор | При уничтожении объекта | ||
| __add__ | Оператор + | X + Y, X += Y, если отсутствует метод __iadd__ | ||
| __or__ | Оператор (побитовое ИЛИ) | `X \ | Y,X \ |
= Y`, если отсутствует метод __ior__ |
| __repr__ __str__ |
Вывод, преобразование | print(X), repr(X), str(X) | ||
| __call__ | Вызовы функции | X(*args, **kargs) |
||
| __getattr__ | Обращение к атрибуту | X.undefined | ||
| __setattr__ | Присваивание атрибуту | X.any = value | ||
| __delattr__ | Удаление атрибута | del X.any | ||
| __getattribute__ | Обращение к атрибуту | X.any | ||
| __getitem__ | Доступ к элементу по индексу, извлечение среза, итерации | X[key], X[i:j], циклы for и другие конструкции итерации, при отсутствии метода __iter__ | ||
| __setitem__ | Присваивание элементу по индексу или срезу | X[key] = value, X[i:j] = sequence | ||
| __delitem__ | Удаление элемента по индексу или среза | del X[key], del X[i:j] | ||
| __len__ | Длина | len(X), проверка истинности, если отсутствует метод __bool__ | ||
| __bool__ | Проверка логического значения | bool(X) , проверка истинности (в версии 2.6 называется __nonzero__) | ||
| __radd__ | Правосторонний оператор + | Не_экземпляр + X | ||
| __iadd__ | Добавление (увеличение) | X += Y (в ином случае __add__) | ||
| __iter__, __next__ | Итерационный контекст | I=iter(X), next(I); циклы for, оператор in (если не определен метод __contains__), все типы генераторов, map(F, X) и другие (в версии 2.6 метод __next__ называется next)) | ||
| __contains__ | Проверка на вхождение | item in X (где X – любой итерируемый объект) | ||
| __index__ | Целое число | hex(X), bin(X) , oct(X) , O[X] , O[X:] (замещает методы __oct__, __hex__ в Python 2) | ||
| __enter__, __exit__ | Менеджеры контекстов TODO: ссылку на раздел | with obj as var: |
||
| __get__, __set__, __delete__ | Дескрипторы атрибутов | X.attr, X.attr = value, del X.attr | ||
| __new__ | Создание | Вызывается при создании объектов, перед вызовом метода __init__ |