Python предлагает мощные инструменты для работы с функциями, декораторами и замыканиями. В этой статье мы разберем их синтаксис, применение и внутреннее устройство. Функции определяются через ключевое слово `def`: def greet(name: str) -> str: """Возвращает приветствие.""" return f"Hello, {name}!" - Параметры: позиционные (`name`), именованные (`name="User"`), `*args` (список аргументов), `**kwargs` (словарь ключевых аргументов). - Типы: аннотации типов (`str`) и `->` для возвращаемого значения. Анонимные функции задаются через `lambda`: square = lambda x: x ** 2 # Эквивалентно def square(x): return x ** 2 print(square(3)) # 9 Ограничение: Лямбды могут содержать только одно выражение. - Локальные (local): Переменные внутри функции. - Глобальные (global): Переменные уровня модуля. - Нелокальные (nonlocal): Переменные из внешней функции (для вложенных функций). - Enclosing: Область видимости внешней функции. Пример: x = "global" 7def outer(): ....x = "outer" .....def inner(): ........n