У меня есть следующие модули:Python функция обзорное с импортом
main.py
import my_import
my_import.a_func()
my_import.py
FOO = "foo"
BAR = []
def a_func():
BAR.append("bar") #ok
FOO = FOO + "foo" #UnboundLocalError:
#local variable 'FOO' referenced before assignment
Это, вероятно, связано с импортом, но как?
[EDIT]
Из ответов я получаю это не импортирование, что является crulpit, но follwing все еще странно:
FOO = "foo"
BAR = []
def a_func():
BAR.append("bar")
print(FOO)
a_func()
-> печатает "Foo"
FOO = "foo"
BAR = []
def a_func():
BAR.append("bar")
print(FOO)
FOO = FOO + "foo"
a_func()
-> терпит неудачу с "UnboundLocalError: локальная переменная 'Foo' обращаться до присвоения" И не распечатывается "Foo"
Похоже, что интерпретатор ищет назначения в текущей области до того, как он действительно выполнит код.
Спасибо за внутреннее объяснение. Позволяет довести это до Closure (Bwhoeehaaaa) – RickyA