好吧,所以我有一个非常讨厌的问题,其中一个变量在本地设置,但然后在该函数之外恢复到它的旧自我(在这种情况下为None),但同时我可以操纵其他变量仍然可以不使用“全球”关键字.
我不能提供真正的代码,但它是这样的:
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上的所有操作都运行正常,但是当我调用print_the_bar时,bar仍然是None,并且我的代码中有很多print语句来验证do_update_task中的bar确实具有正确的值并且不是没有.
有人可以向我解释为什么会这样吗?