从父函数赋值给变量:“赋值前引用的局部变量”
对于以下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
一只萌萌小番薯
相关分类