全局变量和局部变量作用域,一行代码让python结果完全不同。
这段代码会报错吗?
A代码段:
var = 1
def fun():
print(var)
var = 200
fun()
会报错!
修改如下会报错吗?
B代码段:
var = 1
def fun():
print(var)
fun()
不会报错!
原因:A代码段解释器探测到fun函数内部var被重新赋值了,所以var解释成为了局部变量,但是在没有被赋值之前就想使用var,便会出现这个错误。B代码段 var被解释器理解为全局变量,但是可以访问,但是不可以修改。
总结:
在python中,变量不需要先声明,直接使用即可,那我们怎么知道用的是局部变量还是全局变量呢?
1、python使用的变量,在默认情况下一定是用局部变量。
2、python如果想使用作用域之外的全局变量,则需要加global前缀。