Во втором случае ниже Python пытается найти локальную переменную. Когда он не находит его, почему он не может выглядеть во внешнем пространстве, как это делается для первого случая?
Это ищет x в локальной области, затем внешнюю область:
def f1():
x = 5
def f2():
print x
Это дает ошибку local variable 'x' referenced before assignment
:
def f1():
x = 5
def f2():
x+=1
Мне не разрешено изменять подпись функции f2(), поэтому я не могу передавать и возвращать значения x. Однако мне нужен способ изменения x. Есть ли способ явно указать Python искать имя переменной во внешней области (что-то похожее на ключевое слово global
)?
Версия Python: 2.7