(十四)Python学习之全局变量与局部变量
一、定义
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。一般情况下全局变量的定义使用大写字母,局部变量的定义使用小写字母。
二、作用域
1.全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序;
2.当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
三、global与nonlocal
1.global:告诉Python这个变量名不是局部的变量,而是全局的变量;
注意:如果函数的内容无global关键字,优先读取局部变量,能读取局部变量,无法对全局变量赋值,但是对于可变类型,可以对内部元素进行操作;如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值;
2.nonlocal: 告诉Python这个变量名不是局部的变量,而是上一级的变量;
注意:如果函数的内容无nonlocal关键字,优先读取局部变量,能读取局部变量,无法对上一级的变量赋值,但是对于可变类型,可以对内部元素进行操作;如果函数中有nonlocal关键字,变量本质上就是上一级的那个变量,可读取可赋值。