python3函数的四个作用域

python3的四个作用域

作用域:是访问变量时查找变量名的范围
* python3的四个作用域: LEGB

作用域 英文解释 英文简写
局部作用域(函数内) Local(function) L
外部嵌套函数作用域 Enclosing function locals E
函数定义所在模块作用域 Global(module) G
python内置模块的作用域 Bui B

* 变量名查找规则:
在访问变量时,先查找本地变量,然后是包裹此函数外部的函数内的变量,之后是全局变量
最后是內建作用域内的变量
即: L –> E —> G —> B
** 在默认情况下,变量名赋值会在当前作用域内创建变量和修改变量

示例:

v = 100  # 全局作用域


def fun1():
    v = 200  # 外部嵌套函数作用域
    print('fun1.v=', v)

    def fun2():
        v = 300  # 局部作用域
        print('fun2.v=', v)
        print(max)  # max函数都没有创建,在内建函数作用域中,只读,不能改变
                    # 可以在其余三个作用域重新创建。
    fun2()


fun1()

print("全局变量.v=", v)

print(max)  # max变量定义在内置模块的作用域,是解释执行器提前定义好的

猜你喜欢

转载自blog.csdn.net/fayzoro/article/details/82119375