Sobes.tech
Back to questions
Junior — Middle
60

Какими способами в Python создаются функции с сохранением контекста, и как они реализуются?

Answer from AI

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

Таким образом, замыкания и объекты с состоянием позволяют сохранять контекст между вызовами функций.