zoukankan      html  css  js  c++  java
  • 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,就去内置中找

  • 相关阅读:
    日志配置
    Mybaties核心配置文件
    配置3
    写了两个数据获得方式----费劲周折
    applicationContext
    配置2
    Django-缓存的配置
    RabbitMQ的工作模式
    centos下保留python2安装python3
    python位运算
  • 原文地址:https://www.cnblogs.com/xuexianqi/p/13658528.html
Copyright © 2011-2022 走看看