• Python的LEGB规则


    一:LEGB含义解释

    字母 英语 释义 简称 作用空间
    L Local(function) 当前函数内的作用域 局部作用域 局部
    E Enclosing Functions Locals 外部嵌套函数的作用域 嵌套作用域 局部
    G Global(module) 函数外部所在的命名空间 全局作用域 全局
    B Built In(python) Python内置模块的命名空间 内建作用域 内置

    寻找变量的调用顺序,就是采用的LEGB原则(就近原则)

    寻找顺序:从下往上、从里往外

    局部变量:
        函数内部的变量(局部命名空间)
    
    全局变量:
        函数内部和外部(全局命名空间)
    
    (1)内部函数可以直接在函数外部调用么?   				   不行!
    (2)调用外部函数后,内部函数可以在函数外部调用吗			不行!
    (3)内部函数可以在函数内部调用吗   					可以
    (4)内部函数在函数内部调用时,是否有先后顺序 有先后顺序
    

    二:查找顺序

    foo()内部的print(a)为例:

    1.如果foo()函数内部有a这个变量,那么a这个变量就是局部的

    2.如果foo()函数内,没有这个变量,那么就会去找该函数外层的函数func()中,有没有a这个变量,如果有,那么这个a就是闭包的

    3.如果func()中没有变量a,那么就会去最外层的全局变量找

    4.如果全局变量没有a,就去内置中找

  • 相关阅读:
    引用&符号详解
    简单计算器
    while循环输出的表格
    设置和获取变量类型
    位运算符
    MySQL基础(一)SQL基础
    python 21天网络爬虫使用 代理
    Spark入门(一)
    Apache spark2.1.0编译hadoop-2.6-cdh5.11.2的对应版本
    Java 多线程
  • 原文地址:https://www.cnblogs.com/xuexianqi/p/13658528.html
Copyright © 2020-2023  润新知