好的,所以我遇到了一个非常烦人的问题,即在本地设置了一个变量,但在该函数之外又恢复为原来的自我(在这种情况下为无),但同时我可以操纵其他变量,并且仍然可以不使用“全局”关键字。
我无法为此提供真正的代码,但它是这样的:
foo = {}
foo_foo = {}
bar = None
def changes_foo():
...do some stuff to foo...
class EditThread(threading.Thread):
def __init__(self):
setup()
def run(self):
for key, value in foo.items():
do_update_task(key, value)
def do_update_task(self, key, value):
...do some editing too foo...
del foo[key]
bar = [key, value]
foo_foo[key] = value
def print_the_bar():
print bar
请注意,所有的操作foo
和foo_foo
工作都很好,但是当我调用 bar 时仍然是 None print_the_bar
,并且我的代码中有很多打印语句来验证里面的 bardo_update_task
确实具有正确的值并且不是 None。
有人可以向我解释为什么会这样吗?