Skip to content

Функции ​

Что такое функции (урок на 1 ч) ​

  • Зачем нужны, преимущества повторного использования, инкапсуляция

Область видимости и пространство имён (урок на 1 ч) ​

  • LEGB rule, глобальные и локальные переменные, global, nonlocal

Функции без параметров (урок на 1 ч) ​

Повторяющиеся части кода ​

Именование частей кода ​

Вызываемые части кода ​

Функции без параметров + return (урок на 1 ч) ​

Функции без параметров + return как замена print() ​

Функции без параметров + return как замена global ​

Функции без параметров + return x ​

  • запись возврата функции в переменную
  • передача возвращаемого значения функции в другую функцию print(round(52.96))

Функции без параметров + return x, y, ... ​

Функции с параметрами обязательные позиционными/именными (урок на 1 ч) ​

Функция с параметрами смысл применения def f(a, b, c): pass ​

Вызов функции с использованием позиционных параметров f() error ​

Вызов функции с использованием позиционных параметров f(2, 3, 5) ​

Вызов функции с использованием именных параметров f(a=2, b=3, c=5) | f(c=5, a=2, b=3) ​

Вызов функции с использованием позиционных и именных параметров f(2, c=5, b=3) error ​

Функции с необязательными параметрами по умолчанию (урок на 1 ч) def f(a=5, b=0, c=0): pass ​

  • зачем нужны параметры по умолчанию использование их в функциях f()

Функции с обязательными параметрами и параметрами по умолчанию f(1, c=1) ​

Функции с обязательными и необязательными параметрами по умолчанию ​

Аннотации одиночных типов (урок на 1 ч) def f(a: int, b: float =0, c float | int = 0) -> int: pass ​

Аннотация возвращаемого значения функции ​

Аннотация типов обязательных параметров функций ​

Аннотация типов параметров функций по умолчанию ​

Аннотации типов коллекций (урок на 1 ч) list[str| int, float] ​

Аннотации типов коллекций и вложенных типов ​

Аннотации типов коллекций и вложенных разных типов ​

Аннотации типов коллекций и вложенных разных последовательностей типов ​


Функции с параметрами *args ​

Функции с параметрами **kwargs ​

Функции с параметрами Комбинирование всех типов параметров * (как разделитель) ​

Функции как объекты без/с параметрами ​

Лямбда-функции без/с параметрами ​

Функции без параметров + рекурсия ​

Функции с параметрами + рекурсия ​

Документирование функций ​

  • docstring, help(), inspect, автогенерация документации

Тестирование функций ​


Вложенные функции и замыкания ​

  • Lexical scope, доступ к переменным внешней функции

Декораторы ​

  • Что такое, как работают, примеры (@staticmethod, @classmethod, @lru_cache)

Лямбда-функции ​

  • Анонимные функции, map, filter, sorted

Функции как объекты первого порядка ​

  • Передача функций как аргументов, возврат функций, хранение в структурах

Функции высшего порядка ​

  • functools, композиция, каррирование

Генераторы и yield ​

  • Отличие от return, ленивые вычисления, next()

Асинхронные функции ​

  • async def, await, event loop, asyncio

Частичные функции и currying ​

  • functools.partial, создание новых функций на основе существующих

Тестирование функций ​

  • Юнит-тесты, pytest, edge cases, mock

Логирование внутри функций ​

  • logging, уровни логов, форматирование

Примеры архитектурного применения ​

  • Функции в DDD, SRP, DI, как часть сервисов и use-case слоёв