为什么我不能将值写入属于不同模块的变量?

时间:2017-11-08 19:41:48

标签: python python-2.7

我有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

我现在一直在抨击我的头几个小时,我似乎无法弄明白。有什么想法吗?

1 个答案:

答案 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用于局部变量并隐藏同名的全局变量。 通常,不应对本地变量和全局变量使用相同的名称。