Я хочу перебрать некоторую глобальную переменную i
и каждый раз компилировать новую функцию, которая использует мгновенное значение i
.Затем я могу использовать каждую из этих функций в будущем, независимо от текущего значения i
.
Проблема в том, что я не могу найти хороший способ заставить глобальную переменную i
оставаться локальной в пространстве имен функции.Например:
i = 0
def f():
return i
i = 1
print(f()) #Prints 1, when I want 0
Я нашел одно решение, но оно кажется очень неуклюжим:
i = 0
def g(x):
def h():
return x
return h
f = g(i)
i = 1
print(f()) #Prints 0 as I wanted.
Есть ли лучший способ сделать это, может быть, какой-то декоратор?