您的位置:首页 > 编程语言 > Python开发

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

2017-01-24 10:42 881 查看
比如

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

func()输出2
print x 输出50


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

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

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

func()
print x


这样就输出了两个2

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

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

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

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

下面是错误代码

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


报错为

UnboundLocalError: local variable 'x' referenced before assignment

必须使用global x才可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐