Прочие методы (таблица)
Метод | Перегружает | Вызывается | ||
---|---|---|---|---|
__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__ |