我遇到了一个我的Python代码中的bug,这对我来说似乎很陌生,现在我对全局字典的工作方式感到困惑。阅读并重新分配函数中的全局字典
我的示例代码:
myDict={'two':2,'three':3}
def f():
print myDict
f()
提供输出我想到:{'two': 2, 'three': 3}
但是,如果我有一个单行更改代码:
myDict={'two':2,'three':3}
def f():
print myDict
myDict={}
f()
然后我得到
Traceback (most recent call last):
File "test.py", line 9, in <module>
f()
File "proba.py", line 7, in f
print myDict
UnboundLocalError: local variable 'myDict' referenced before assignment
个我的问题:
- 如果我能在功能
f
打印全球myDict
,我为什么不能重新分配呢? - 线
myDict={}
如何破坏打印命令,尽管它稍后执行?
我正在使用Python 2.7。 谢谢你的帮助!
尝试在您的代码顶部添加'''global myDict''',看看会发生什么 – wnnmaw