python函数作用域以及LEGB原则

python函数作用域遵循LEGB原则,L>E>G>B
L: local函数内部作用域
E:enclosing函数内部与内嵌函数之间
G:global全局作用域
B:build-in内置作用域
下面用一个例子进行解释:

pass_line = 60  # pass_line: global


def func(val):  # val: local
    pass_line = 90  # pass_line: local
    if val >= pass_line:
        print("pass")
    else:
        print("failed")

    def fun_in():
        print(val)  # val: enclosing
    return fun_in


def maximum(val1, val2):
    return max(val1, val2)  # max(): build-in

if __name__ == "__main__":
    f = func(89)
    f()

你可能感兴趣的:(python)