Курс 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. Группы исключений в Python
  2. Замыкания в Python
  3. Резервирование символов в Python
  4. Форматирование кода на Python
  5. Наиболее частотные элементы с помощью Counter
  6. Использование подчеркивания в REPL
  7. Умножение строк и списков
  8. Объединение словарей в Python
  9. Перетасовка списков в Python
  10. Отделение звука от видео
  11. Извлечение новостей с newspaper3k
  12. Обновление и получение данных в SQLite
  13. Получение текущей даты и времени с помощью datetime
  14. Разница между датами
  15. Списки в Python: синтаксис представления
  16. Основы работы с os
  17. Обмен данными с asyncio.Queue
  18. Создание тестовых данных с Faker
  19. Удаление URL-адресов в Python
  20. Создание новых функций с помощью functools.partial
  21. Возврат нескольких значений
  22. Создание именованных кортежей в Python
  23. Возврат нескольких значений из функции
  24. Сортировка в Python
  25. Сортировка данных с лямбда-функциями
  26. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  27. Работа с f-строками 2.0
  28. Создание таблиц в Python с PrettyTable
  29. Класс Counter() для подсчета элементов
  30. Разбиение строки в Python
  31. Библиотека Chartify: руководство
  32. Операции с числами в Python
  33. Numpy: разбиение массивов
  34. Инициализация объекта
  35. Вложенные циклы в Python
  36. Оператор == в Python
  37. Поиск анаграмм с Counter
  38. Docstring в Python
  39. Перегрузка операторов в Python
  40. Обход словаря в Python
  41. Удаление элементов из списка в Python
  42. ROT13 Шифр Цезаря в Python
  43. Изменяемые и неизменяемые объекты
  44. Цикл for в Python
  45. Комплексные числа в Python
  46. Применение функции к каждому элементу списка
  47. Улучшенные подсказки для импорта в Python 3.12

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