【Python】函数进阶(下)
3、作用域
作用域可以理解为一块空间,这块空间的数据是可以共享的。通俗点来说,作用域就类似一个房子,房子里的东西归所有人共享,其它房子里的人无法获取。
(1)函数为作用域
Python以函数为作用域,所以在函数内创建的所有数据可以在此函数中被使用,无法在其他函数中被使用。
代码示例:
(2)全局和局部
Python中以函数为作用域,函数的作用域其实就是一个局部作用域。
代码示例:
COUNTRY="中国"
CITY_LIST=[11,20]
def func():print(666)
COUNTRY和CITY_LIST是在全局作用域中,在全局作用域中创建的变量称为 全局变量。全局变量可以在全局作用域中被使用,也可以在局部作用域中被使用。
func函数内部就是一个局部作用域,在函数内部创建变量称之为局部变量。且局部变量只能在该函数内部被使用。
注意:在局部作用域中想使用某个变量时,寻找的顺序是:优先在局部作用域中寻找,如果局部作用域中没有,则在全局作用域中寻找。如果想在全局作用域中寻找某个变量,只能在全局作用域中寻找。
注意:全局变量一般都是大写。
代码示例1:
代码示例2:
(3)global关键字
默认情况下,在局部作用域中对全局变量只能进行:读取和修改内部元素(可变类型的内部元素),无法对全局变量重新赋值。
1))读取
2))修改内部元素
代码示例:
3))无法对全局变量重新赋值
代码示例:
如果想在局部作用域中对全局变量重新赋值,则可以基于global关键字实现。
代码示例: