Разное

- Python - строго типизированный язык. - Оператор "is" проверяет значение и тип. - Декоратор - это функция, которая принимает одну функцию в качестве аргумента и возвращает другую.

Объекты

- Имя - это ссылка на объект, но не сам объект. - В случае, когда оба имени указывают на изменяемый объект, его можно изменить с помощью любого имени. **Объект содержит:** - тип - id - значение - счетчик ссылок

Типы данных

**Неизменяемые типы данных:** - int - bool - float - string - complex - tuple - bytes - frozenset **Изменяемые типы данных:** - list - dict - set - bytearray

Классы

Методы
```python __mro__ # возвращает картеж родетельских классов ```
Миксины
`Mixin` — это класс, предоставляющий реализации методов для повторного использования дочерними классами. Он представляет ограниченную форму множественного наследования и родительский класс, который просто даёт функциональные возможности подклассам, не содержит состояния и не предназначен для создания экземпляров. Когда использовать миксины? Они подходят, когда хочется: * предоставить множество дополнительных функций для класса * использовать определённую функцию во множестве разных классов
@property
```python class C: def __init__(self): self._x = None @property def x(self): # В декораторах 'setter' и 'deleter' нужно указывать имя метода-свойства """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x ```
@classmethod
```python class A():     count = 0     def __init__(self):         A.count += 1 def exclaim(self):         print('I`m an A!')     @classmethod     def kids(cls):         print("A has", cls.count, "little objects.") def test_classmethod():     easy_a = A()     breezy_a = A()     wheezy_a = A()     A.kids() ```
@staticmethod
```python class CoyoteWeapon():     @staticmethod     def commercial():         print('This CoyoWeapon has been brought to you by Acme') CoyoteWeapon.commercial() ```

Полезные фичи

* Фуyкция divmod возвращает частное и остаток ```python >>> divmod(9, 5) (1, 4) ```

Строки

**Наборы символов:** ```python import string >>> string.whitespace ' \t\n\r\x0b\x0c' >>> string.punctuation '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' ```