本文主要是介绍UnboundLocalError: local variable 'c' referenced before assignment,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题代码:
def outer():c = 0def inner():c += 1print 'inner'print cprint 'outer'return inner()outer()
报错:
UnboundLocalError: local variable 'c' referenced before assignment
解决方法:
1.python2.7使用global
c = 0
def outer():def inner():global c # python2.7使用globalc += 1print 'inner'print cprint 'outer'return inner()outer()
outer()
outer()
输出:
outer
inner
1
outer
inner
2
outer
inner
3
2.python3使用nonlocal
def outer():c = 0def inner():nonlocal c # python3使用nonlocalc += 1print ('inner')print (c)print ('outer')return inner()outer()
outer()
outer()
参考:https://www.cnblogs.com/thinking-jxj/p/7681415.html
另外,
def outer():c = 0def inner():print 'inner'print c # 直接访问不修改值,不报错print 'outer'return inner()outer()
outer()
outer()
输出:
outer
inner
0
outer
inner
0
outer
inner
0
这篇关于UnboundLocalError: local variable 'c' referenced before assignment的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!