Python全局变量和局部变量
1.局部变量
定义在函数体内部的变量,作用区域仅限于函数体内
如图所示
这里定义了一个函数体A,在函数体A里面定义了一个局部变量name,当我们调用函数体A时,发现可以把name的赋值打印出来。
在绿色方框里,在函数体A外使用函数体A的局部变量name,可以看到,结果会显示第7行代码出错,“name”没有被定义。也就是说,函数体A的name变量在函数体A之外是没有作用的。
2.全局变量
定义在函数体外的变量称之为全局变量,全局变量的作用域不限于函数体内。
如图所示
可以看到,在函数体外定义了全局变量之后,不但可以在函数体A里使用,还可以在函数体外使用。
3.关于全局变量和局部变量同名问题
如图所示
在函数体外定义了一个全局变量name,同时在函数体A里定义了一个局部变量name,这在python中是可以的,但在函数体里面,会将全局变量name重新复制,变为自己的局部变量,从而可以像上图一样产生不一样的结果。
4.切记不要出现下图情况:
在函数体A中,我没有定义局部变量,直接将全局变量进行修改,这样是不允许的,会报错。
5.使用global关键字引入全局变量:
我在函数体A中通过使用关键字global引入了定义的全局变量name,所以就可以对全局变量进行修改,修改之后的打印结果,就是最后一句“我是小王是一个学生”
6.关于列表型全局变量
如图所示
在使用列表型的全局变量时,在函数体内修改列表型全局变量不需要(因为list是可变类型)加关键字global