Python的UnboundLocalError: local variable 'xxx' referenced before assignment
来源:互联网 发布:c语言c14准则 编辑:程序博客网 时间:2024/05/22 06:29
转载地址: http://blog.csdn.net/onlyanyz/article/details/45009697
我们编写Python的时候,有时会遇到这种情况:明明在函数外部已经定义了变量n,在函数内部先把该值打印出来,然后再使该变量自增,运行时却遇到了这样的错误:
UnboundLocalError: local variable 'xxx' referenced before assignment
如下代码片所示:
n=0 def func(): print n n+=1 func()
结果运行时就出现了上述错误。
这是因为在函数内部对变量赋值进行修改后,该变量就会被python解释器认为是局部变量而非全局变量,当程序执行到n+=1的时候,因为这条语句是给n赋值,所以n成为了局部变量,那么在执行print n的时候,因为n这个局部变量还没有定义,自然就会抛出这样的错误。
考虑如下代码片:
n=0 def func(): print n func()
那么,我们怎样才能达到在函数内部先打印,再赋值的操作呢?结论就是使用global关键字,在函数内部先声明n这个变量是全局变量。代码如下:
n=0 def func(): global n print n n+=1 func() print n
结果如下:
0 1 [Finished in 1.0s]
这时,n就成为了全局变量,在函数内部修改该变量,也就没有问题了。
阅读全文
0 0
- python的UnboundLocalError: local variable 'xxx' referenced before assignment
- python的UnboundLocalError: local variable 'xxx' referenced before assignment
- Python的UnboundLocalError: local variable 'xxx' referenced before assignment
- Python的UnboundLocalError: local variable 'xxx' referenced before assignment
- UnboundLocalError: local variable 'XXX' referenced before assignment
- Python - UnboundLocalError: local variable referenced before assignment
- 错误:UnboundLocalError: local variable 'xxx' referenced before assignment
- 【Python】UnboundLocalError: local variable 'l' referenced before assignment
- 【Python基础】之全局变量(UnboundLocalError: local variable referenced before assignment)
- 【Python】UnboundLocalError: local variable 'l' referenced before assignment
- 【python】UnboundLocalError: local variable 'counter' referenced before assignment
- python:UnboundLocalError: local variable 'l' referenced before assignment
- 【Python】UnboundLocalError: local variable 'x' referenced before assignment
- 【Python基础】Python3: UnboundLocalError: local variable 'num' referenced before assignment
- 【Python异常】UnboundLocalError: local variable 'xxxx' referenced before assignment
- UnboundLocalError: local variable 'l' referenced before assignment
- UnboundLocalError: local variable 'l' referenced before assignment
- UnboundLocalError: local variable ' ' referenced before assignment
- LeetCode 628. Maximum Product of Three Numbers
- tinker(三)-使用TinkerPatch 平台-实践
- Android之仿B612咔叽滤镜列表操作
- 【微信开发 】测试号开发
- 暴力搜索
- Python的UnboundLocalError: local variable 'xxx' referenced before assignment
- VMware无法打开已存在虚拟机vmx文件解决办法
- 五.Redis的多数据库和事务
- python strip()函数
- HDU1068 Girls and Boys
- 触摸屏原理
- Java中对象的深克隆和浅克隆
- 见过这么美的餐厅设计风格吗?
- oop之图形计算机应用举例