Курс Python → Замыкания в Python

Замыкания — это функции, которые запоминают окружение, в котором они были созданы, и могут получать доступ к переменным из этого окружения даже после того, как функция уже была завершена. Они позволяют создавать локальные области видимости для переменных, что делает код более чистым и понятным. Кроме того, замыкания позволяют передавать функции в качестве аргументов и возвращать их из других функций, что делает код более гибким.

Одним из основных случаев использования замыканий является избегание использования глобальных переменных. Вместо того чтобы делать переменные глобальными и рисковать конфликтами имён, можно использовать замыкания для создания локальных переменных, которые будут доступны только внутри функции. Это способствует изоляции данных и предотвращает нежелательные побочные эффекты.

Еще одним случаем использования замыканий является обеспечение сокрытия данных. Путем создания замыкания с внутренней функцией, которая имеет доступ к «скрытым» переменным, можно реализовать инкапсуляцию данных. Это позволяет скрыть детали реализации и предоставить только необходимый интерфейс для взаимодействия с данными.


def make_multiplier(x):
    def multiplier(y):
        return x * y
    return multiplier

double = make_multiplier(2)
triple = make_multiplier(3)

print(double(4))  # Вывод: 8
print(triple(5))  # Вывод: 15

Пример выше демонстрирует использование замыкания для создания функций, которые умножают переданное число на заданное значение. Функция make_multiplier создает замыкание, которое запоминает значение x и возвращает функцию multiplier, которая умножает x на переданное значение y. Таким образом, мы можем создать несколько функций с разными множителями на основе одного общего шаблона.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Создание и удаление объектов
  2. Логирование с Loguru
  3. Фильтрация списка от «ложных» значений
  4. Тайное преобразование типа ключа
  5. Извлечение аудио из видео
  6. Метод get для словаря
  7. Обработка ошибок в Python
  8. Операции с массивами в NumPy
  9. Работа со строками в Python.
  10. Срезы в Python
  11. Проверка индексов коллекции
  12. Возведение в квадрат с помощью itertools
  13. Работа с JSON в Python
  14. Логический оператор «and» в Python
  15. Создание итерируемых объектов
  16. Поиск индексов в списке
  17. Оператор is в Python
  18. Просмотр атрибутов и методов класса
  19. Генерация QR-кодов с библиотекой qrcode
  20. Основы работы со строками в Python
  21. Многопоточность в Python
  22. Работа с атрибутом dict
  23. Solidity для DeFi Ethereum
  24. Операция += для списков
  25. Генерация UUID в Python
  26. Форматирование строк в Python
  27. Создание класса в Python
  28. Работа с пакетами
  29. Оператор continue в Python
  30. Управление памятью в numpy.
  31. Введение в Python
  32. Логирование в Python
  33. Получение текущей директории
  34. Функциональное программирование.
  35. Проверка версии Python
  36. Управление фоновыми задачами в Python
  37. Управление доступом к модулю
  38. Работа с YAML в Python
  39. Визуализация пропусков данных
  40. Делегирование в Python
  41. GitHub в Telegram: подписка на уведомления
  42. Создание namedtuple из словаря
  43. Python UserString — создание подклассов строк
  44. Работа с модулем bisect
  45. Работа с модулем Calendar

Marketello читают маркетологи из крутых компаний