我有2个.py
个文件。
档案a.py
:
some_boolean = True
档案b.py
:
from a import *
def blah():
if some_boolean:
do_something()
some_boolean = not some_boolean
代码在没有some_boolean = not some_boolean
行的情况下完美无缺,但只要我将其添加回{I}获取UnboundLocalError: local variable 'some_boolean' referenced before assignment
。
我现在一直在抨击我的头几个小时,我似乎无法弄明白。有什么想法吗?
答案 0 :(得分:1)
您需要对a
进行合格导入并使用全名a.some_boolean
:
import a
def blah():
if a.some_boolean:
do_something()
a.some_boolean = not a.some_boolean
我的代码some_boolean = not some_boolean
尝试创建一个新的局部变量。这不起作用,因为名称some_boolean
用于局部变量并隐藏同名的全局变量。
通常,不应对本地变量和全局变量使用相同的名称。