class MyClass(object):
# укзаывает, какие атрибуты и методы унаследуют экземпляры
__slots__ = ()
def __init__(self):
"""
1. данный метод инициализирует атрибуты объекта для создания экземпляра
2. метод экземпляра класса
3. self - экземпляр класса
"""
# вызов родительского метода
super(MyClass, self).__init__()
def __call__(self):
"""
позволяет обрабатывать вызов экземпляра класса как вызов функции
"""
@classmethod
def class_method(cls):
"""
1. метод класса
2. cls - сам класс
"""
pass
@staticmethod
def static_method()
"""
1. статический метод
"""
pass
__init__
(self, *args, **kwargs)Инициализация экземпляра класса
__new__
(self, *args, **kwargs)Создание экземпляра класса
__del__
(self)Уничтожение экземпляра класса. Уменьшает счетчик ссылок на объект
__format__
(self, format_spec)Создает форматированное строковое представление объекта
__repr__
(self, *args, **kwargs)Строковое представление объекта, строка с выражением, которое может использоваться для воссоздания объекта с помощью функции eval()
__str__
(self)Строковое представление объекта
__bool__
(self)Истинность объекта
__hash__
(self)Хеш сумма объекта
__lt__
(self, other)self < other
__le__
(self, other)self <= other
__gt__
(self, other)self > other
__ge__
(self, other)self >= other
__eq__
(self, other)self == other
__ne__
(self, other)self != other
__instancecheck__
(cls, object)__subclasscheck__
(cls, sub)__getattribute__
(self, name)Возвращает атрибут self.name.
__getattr__
(self, name)Возвращает атрибут self.name, который не может быть найден обычным способом, или возбуждает исключение AttributeError.
__setattr__
(self, name, value)Изменяет значение атрибута при выполнении операции self.name = value. Переопре деляет механизм присваивания, исполь зуемый по умолчанию.
__delattr__
(self, name)Удаляет атрибут self.name.
__dir__
(self)Возвращает список имен атрибутов
__get__
(self, instance, cls)Возвращает значение атрибута или возбуждает исключение AttributeError
__set__
(self, instance, value)Записывает в атрибут значение value
__delete__
(self, instance)Удаляет атрибут
__len__
(self)Возвращает длину объекта self
__getitem__
(self, key)Возвращает self[key]
__setitem__
(self, key, value)Реализует присваивание self[key] = value
__delitem__
(self, key)Удаляет self[key]
__contains__
(self, obj)Возвращает True, если obj присутствует в self; в противном случае возвращает False
__iter__
(self)Возвращает объект итератор, который должен иметь метод next() или __next__(), возвразающий следующий объект, или возбуждать исключение StopIteration
__add__
(self, other)self + other
__sub__
(self, other)self - other
__mul__
(self, other)self * other
__div__
(self, other)self / other (только в Python 2)
__truediv__
(self, other)self / other (Python 3)
__floordiv__
(self, other)self // other
__mod__
(self, other)self % other
__divmod__
(self, other)divmod(self,other)
__pow__
(self, other[, modulo])self ** other, pow(self, other, modulo)
__lshift__
(self, other)self << other
__rshift__
(self, other)self >> other
__and__
(self, other)self & other
__or__
(self, other)self | other
__xor__
(self, other)self ^ other
__radd__
(self, other)other + self
__rsub__
(self, other)other - self
__rmul__
(self, other)other * self
__rdiv__
(self, other)other / self (только в Python 2)
__rtruediv__
(self, other)other / self (Python 3)
__rfloordiv__
(self, other)other // self
__rmod__
(self, other)other % self
__rdivmod__
(self, other)divmod(other,self)
__rpow__
(self, other)other ** self
__rlshift__
(self, other)other << self
__rrshift__
(self, other)other >> self
__rand__
(self, other)other & self
__ror__
(self, other)other | self
__rxor__
(self, other)other ^ self
__iadd__
(self, other)self += other
__isub__
(self, other)self -= other
__imul__
(self, other)self *= other
__idiv__
(self, other)self /= other (только в Python 2)
__itruediv__
(self, other)self /= other (Python 3)
__ifloordiv__
(self, other)self //= other
__imod__
(self, other)self %= other
__ipow__
(self, other)self **= other
__iand__
(self, other)self &= other
__ior__
(self, other)self |= other
__ixor__
(self, other)self ^= other
__ilshift__
(self, other)self <<= other
__irshift__
(self, other)self >>= other
__neg__
(self)–self
__pos__
(self)+self
__abs__
(self)abs(self)
__invert__
(self)~self
__int__
(self)int(self)
__long__
(self)long(self) (только в Python 2)
__float__
(self)float(self)
__complex__
(self)complex(self)
__round__
(self)round(self)
__index__
(self)вызывается при использовании функции bin(), hex(), oct()
Начиная с версии 2.6, язык поддерживает протокол менеджеров контекста. Этот протокол гарантирует выполнение завершающих действий (например, закрытие файла) вне зависимости от того, произошло исключение внутри блока кода или нет. Для работы с протоколом предназначена инструкuия with … as.
>>> with <выражение>[ as <переменная>][, <выражение2>[ as <переменная2>]]:
...
Вначале вычисляется <выражение>, которое должно возвращать объект, поддерживающий протокол. Этот объект должен иметь два метода: __enter__ и __exit__.
__enter__
(self)Вызывается при входе в новый контекстный блок. Возвращаемое значение помещается в переменную, указанную в спецификаторе as инструкции with.
__exit__
(self, type, value, tb)Вызывается, когда поток выполнения покидает контекстный блок. Если в процессе выполнения инструкций в блоке было возбуждено исключение, в аргументах type, value и tb передаются тип исключения, его значение и объект с трассировочной информацией. В первую очередь инструкция with предназначена для упрощения управления системными ресурсами, такими как открытые файлы, сетевые соединения и блокировки. Благодаря реализа ции этого интерфейса объект может безопасно освобождать ресурсы после выхода потока выполнения за пределы контекста, в котором этот объект используется.
__getstate__
(self)возвращает представление объекта для сохранения
__setstate__
(self, value)возвращает востановленный объект по аргументу
import socket
class Client(object):
def __init__(self,addr):
self.server_addr = addr
self.sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.sock.connect(addr)
def __getstate__(self):
return self.server_addr
def __setstate__(self,value):
self.server_addr = value
self.sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.sock.connect(self.server_addr)
Атрибуты классов
атрибут |
описание |
---|---|
t.__doc__ |
Строка документирования |
t.__name__ |
Имя класса |
t.__bases__ |
Кортеж с базовыми классами |
t.__dict__ |
Словарь, содержащий методы и атрибуты класса |
t.__module__ |
Имя модуля, в котором определен класс |
t.__abstractmethods__ |
Множество имен абстрактных методов (может быть неопределен, если абстрактные методы отсутствуют в классе) |
Атрибуты экземпляров классов
атрибут |
описание |
---|---|
ш.__class__ |
Класс, которому принадлежит экземпляр |
m.__dict__ |
Словарь, содержащий данные экземпляра |
Атрибуты методов
атрибут |
описание |
---|---|
m.__class__ |
Класс, в котором определен данный метод |
m.__doc__ |
Строка документирования |
m.__func__ |
Объект функции, реализующей данный метод |
m.__name__ |
Имя метода |
m.__self__ |
Ссылка на экземпляр, ассоциированный с данным методом (None – для несвязанных методов) |