Как работают замыкания (closures) в Python, и как их можно использовать для сохранения состояния между вызовами функции?
Ответ ⬇️
Замыкания позволяют внутренней функции запоминать переменные из объемлющей области видимости даже после завершения работы внешней функции. Это полезно для создания функций с сохраненным состоянием, например, для подсчета числа вызовов.
🗣️ Пример:
def counter():
count = 0 # Переменная в объемлющей области видимости
def increment():
nonlocal count # Обращаемся к переменной из объемлющей области
count += 1
return count
return increment
# Пример использования
counter1 = counter()
print(counter1()) # 1
print(counter1()) # 2
counter2 = counter()
print(counter2()) # 1
# Результат выполнения:
# 1
# 2
# 1
Python Learning 👩💻