🔖 Справочник команд и синтаксиса

⚡ Краткий справочник

  • """...""" — docstring функции/класса/модуля
  • help(obj) — вывести документацию объекта
  • obj.__doc__ — получить docstring как строку
  • x: int — аннотация переменной
  • def f(a: int) -> str: — аннотация параметров и результата
  • list[int], dict[str, int] — generic-типы (Python 3.9+)
  • Any | None — современная запись Union
  • Callable[[int, int], int] — аннотация функции

Docstrings

КонструкцияНазначениеПример
"""текст""" Документирующая строка def f():\n """Описание."""
:param имя: Описание параметра (reST) :param name: Имя пользователя.
:return: Описание возвращаемого значения :return: Приветствие.
help(obj) Вывод справки по объекту help(str)
obj.__doc__ Строка docstring print(add.__doc__)

Синтаксис аннотаций

ЗаписьЗначениеПример
x: int Переменная должна быть int age: int = 25
def f(a: int) -> str: Параметр int, результат str def repeat(n: int) -> str:
list[int] Список целых чисел nums: list[int] = [1, 2, 3]
tuple[str, int] Кортеж фиксированной длины pair: tuple[str, int] = ("a", 1)
tuple[int, ...] Кортеж произвольной длины из int coords: tuple[int, ...]
dict[str, int] Словарь: ключи str, значения int counts: dict[str, int]
set[str] Множество строк tags: set[str] = {"a", "b"}
frozenset[int] Неизменяемое множество int ids: frozenset[int]
-> None Функция ничего не возвращает def log(msg: str) -> None:

Модуль typing

ИмяЗначениеПример
Any Любой тип data: Any
Union[A, B] A или B value: Union[int, float]
A | B Современная запись Union (Python 3.10+) value: int | float
Optional[T] T или None name: Optional[str]
T | None Современная запись Optional name: str | None
Callable[[A, B], R] Функция с параметрами A, B и результатом R fn: Callable[[int, int], int]
List[int] Старый стиль списка int (до Python 3.9) from typing import List
Dict[str, int] Старый стиль словаря from typing import Dict

Изменяемость и копирование

КатегорияТипыПоведение в функции
Неизменяемые int, float, bool, str, tuple, frozenset Изменение создаёт новый объект; оригинал не меняется
Изменяемые list, dict, set Изменение влияет на оригинальный объект
lst.copy() list, dict Поверхностная копия
copy.deepcopy(x) любые вложенные объекты Глубокая копия всех уровней