class¶
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
Доступ к атрибутам¶
-
__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()
Контексты (with)¶
Начиная с версии 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 предназначена для упрощения управления системными ресурсами, такими как открытые файлы, сетевые соединения и блокировки. Благодаря реализа ции этого интерфейса объект может безопасно освобождать ресурсы после выхода потока выполнения за пределы контекста, в котором этот объект используется.
Сохранение и востановление объектов. pickle, ‘shelve’¶
-
__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 – для несвязанных методов) |