龙空技术网

python中LEGB规则

爱简单11 86

前言:

此时咱们对“python中的b”都比较看重,大家都想要剖析一些“python中的b”的相关内容。那么小编也在网络上搜集了一些关于“python中的b””的相关知识,希望你们能喜欢,大家快快来了解一下吧!

'''

python在查找“名称”时,是按照LEGB规则查找的,local--Enclosed--Global--Built in

local:指的就是函数或者类的方法内部

Enclosed:指的是嵌套函数(一个函数包裹另一个函数,闭包)

Global:指的是模块中的全局变量

Built in:指的是python为自己保留的特殊名称

如果某个name映射在局部(local)命名空间中没有找到,接下来就会在闭包作用域(Enclosed)进行搜索,如果闭包作用域也没有找到,python就会到全局

(global)命名空间中进行查找,最后会在内建(build-in),命名空间搜索(如果一个名称在所有命名空间都没有找到,就会产生一个NameError)

测试:LEGB

'''

a=300

def outer():

a=200

def inner():

a=100

print(a)

inner()

outer() #在调用的时候现在inner函数里面找,找不到a就向外ourer函数里面找,如果outer也找不到,就再向上一级找,如果都没有就会报错

标签: #python中的b