Назад к вопросам
Junior — Middle
61
Какими способами в Python создаются функции с сохранением контекста, и как они реализуются?
Ответ от нейросети
sobes.tech AI
В Python функции с сохранением контекста обычно создаются с помощью замыканий (closures) и функций-генераторов.
Замыкания — это функции, которые «запоминают» значения переменных из окружающего контекста, даже если этот контекст уже вышел из области видимости.
Пример замыкания:
def make_multiplier(factor):
def multiplier(number):
return number * factor
return multiplier
times3 = make_multiplier(3)
print(times3(10)) # Выведет 30
Здесь функция multiplier сохраняет значение factor из внешней функции.
Также можно использовать объекты с методом __call__ для сохранения состояния.
class Multiplier:
def __init__(self, factor):
self.factor = factor
def __call__(self, number):
return number * self.factor
times3 = Multiplier(3)
print(times3(10)) # 30
Таким образом, замыкания и объекты с состоянием позволяют сохранять контекст между вызовами функций.