Курс 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. Метод get для словаря
  2. Создание пар из последовательностей
  3. Функция product() из itertools
  4. Создание и операции с дробями
  5. Поиск с библиотекой Google
  6. Генератор бросков кубиков
  7. Функции all и any в Python
  8. Разработка Telegram-ботов
  9. Создание OrderedDict
  10. Определение наиболее частого элемента с помощью collections.Counter
  11. Функция enumerate в Python
  12. Вычисление времени выполнения
  13. Оператор распаковки в Python
  14. Библиотека schedule: планировщик задач
  15. Проверка существования переменной с оператором :=
  16. Нахождение пересечения множеств
  17. Многострочные комментарии в Python
  18. Настройка вывода NumPy
  19. Секреты Python
  20. Переопределение метода sub
  21. Создание и удаление объектов
  22. Многострочные строки в Python
  23. Поиск email
  24. Изменение объектов в Python
  25. Метод remove() для удаления элемента из списка
  26. Область видимости переменных
  27. f-строки в формате строк
  28. Создание списка через цикл
  29. Создание даты из строки ISO
  30. Повторение элементов в Python
  31. Изучение объектов с помощью dir()
  32. Команда %dhist — список посещенных каталогов
  33. Округление дробей в Python
  34. Срез в Python
  35. Визуализация пропусков данных
  36. Генераторы в Python
  37. lru_cache оптимизация функций
  38. Прокачанный трейсинг ошибок
  39. Функции в Python
  40. Метод __ilshift__ для битового сдвига влево
  41. Открытие и запись файлов
  42. Сортировка и разворот списка
  43. Big O оптимизация
  44. Декоратор Property в Python
  45. Функция divmod() в Python

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