Python全局变量global和局部变量 UnboundLocalError: local variable 'x' referenced before assignment

来源:互联网 发布:sql 新增字段默认值 编辑:程序博客网 时间:2024/05/22 04:38

比如

x=50def func():x=2print xfunc()输出2print x 输出50

这两个变量分别是全局变量和局部变量。


如果想要在func里面修改全局的x,需要使用global。不使用global就是局部变量。

x=50def func():global xx=2print xfunc()print x

这样就输出了两个2


如果仅仅只是要访问全局变量。可以不使用global

x=50def func():print xfunc()
输出50




如果在变量内先使用全局变量并且需要修改全局变量。必须使用global。否则会报错。如果是只读全局变量可以不用。

python中修改变量就会认为是修改局部变量,比如下面的x=2使得python会报错认为 x==50的这个x是局部变量没有定义。

下面是错误代码

x=50def func():if x==50:x=2func()



报错为

UnboundLocalError: local variable 'x' referenced before assignment

必须使用global x才可以。



0 0
原创粉丝点击