#Python四大作用域
#Python 作用域(scope) 和 LEGB
# LEGB 分别是:
# locals 是函数内的名字空间,包括局部变量和形参
# enclosing 外部嵌套函数的名字空间(闭包中常见)
# globals 全局变量,函数定义所在模块的名字空间
# builtins 内置模块的名字空间
# 而查找的优先顺序从左到右以此是: L -> E -> G -> B
#局部变量空间———闭包空间———全局变量空间———内建模块空间
#######################
# print(type(list)) #list为 builtins
# list = 1
# print(list)
# a = 3 #globals
# def func1():
# a = 3 #enclosing
# def func2():
# a = 4 #locals
# return func2
#func2中的a闭包作用域,故未声明,无法使用 a = a + 2
# def func1():
# a = 10
# def func2():
# a = a - 2
# return a
# return func2()
#
# print(func1())
#访问和更改外层变量方法1
# def func1():
# a = 10
# list1 = [a,]
# def func2():
# list1[0] = list1[0] - 2
# return list1[0]
# return func2
# print(func1()())
#访问和更改外层变量方法2
# def func1():
# a = 10
# def func2():
# nonlocal a
# a -= 2
# return a
# return func2
# print(func1()())
python变量作用域(四大)
猜你喜欢
转载自blog.csdn.net/qq_35515661/article/details/81462012
今日推荐
周排行