python中搜索变量的【LEGB】法则 2020-01-18(

2020-01-18  本文已影响0人  9_SooHyun

【LEGB】法则

L-Local:在本地函数内部搜索变量
E-Enclosing function:在外部嵌套函数(如闭包closure)内部搜索变量
G-Global:在函数定义的模块(即函数定义的.py文件)搜索全局变量
B-Builtin:搜索Python的内建变量

LEGB法则是python搜索变量的法则,举一个例子:

# this is test.py

# G-Global变量x=1
x = 1
def f1():
    # E-Enclosing function变量x=2
    x = 2
    def f2():
        # L-Local变量x=3
        x = 3
        return x
    return f2

在上面的test.py中,真正需要x的地方只有一处——return x
那么,python执行到return x时,就会按照【LEGB】法则搜索这个x变量到底引用了哪一个值

上一篇下一篇

猜你喜欢

热点阅读