python 全局变量 global 的使用方法?
在赋值之前引用局部变量,是什么意思?
UnboundLocalError: local variable 'list' referenced before assignment 错误是指?
这些问题都涉及一个概念:局部变量和全局变量
和很多程序语言类似,局部变量只在函数内部或特定变量作用域里起作用,而全局变量则在所有地方起作用。
在python中如果定于了局部变量,将不在使用全局变量,属于就近原则的模式。
当一个变量的值自身发生变化的时候,它是被当做一个局部变量看待的,而这个时候如果没在局部作用域内定义变量,就会报“在赋值之前引用局部变量”的异常,
x = 5
y = 10
def changex():
x = x + 1
z = y + 1
reurn x,z
虽然有全局变量x,但是在函数内部x值发送了变化,他将已局部变量来使用,而在函数内没有x的定义,所有报错,对应y只是引用了并没赋值变动y本身的值,这时在内部没有找到定义,会向外查找,找到全局变量y,所以结果就是:
x 爆错
z 11
如果要是x能使用全局变量中的x,就用到了global关键字,修改代码
x = 5
def changex():
global x
x = x + 1
return x
返回 6