从父函数赋值给变量:“赋值前引用的局部变量”
对于以下Python 2.7代码:
#!/usr/bin/pythondef funcA(): print "funcA" c = 0 def funcB(): c += 3 print "funcB", c def funcC(): print "funcC", c print "c", c funcB() c += 2 funcC() c += 2 funcB() c += 2 funcC() print "end"funcA()
我收到以下错误:
File "./a.py", line 9, in funcB c += 3UnboundLocalError: local variable 'c' referenced before assignment
但是,当我注释掉该行c += 3中funcB,我得到以下的输出:
funcAc 0funcB 0funcC 2funcB 4funcC 6end
c在+=in funcB和=in 两种情况下都没有访问funcC?为什么不为一个而不是另一个抛出错误?
我没有做一个选择c一个全局变量,然后宣布global c在funcB。无论如何,关键不是要c增加,funcB而是为什么它会抛出错误,funcB而不是因为funcC它们都在访问本地或全局的变量。
 墨色风雨
墨色风雨 
					holdtom
 
					哔哔one
 
					一只萌萌小番薯
 随时随地看视频慕课网APP
随时随地看视频慕课网APP
相关分类