# -*- coding: cp936 -*-
#python 27
#xiaodeng
#变量名解析:LEGB原则
'''
L-----local 局部名字空间
E-----enclosing 直接外围空间
G-----global 全局名字空间
B-----builtin 内建名字空间
变量名是按照这个顺序搜索的。 基本原则详细阐述:
1、变量名引用分为4个作用域进行查找,首先是本地,之后是函数内(如有),再全局,最后内置作用域,找到变量名之后才会停止下来
2、在默认情况下,变量名赋值会创建或改变本地变量
3、全局声明和非本地声明将赋值的变量名映射到模块文件内部的作用域
''' 最重要的一句话,变量名查找引用顺序:
首先是查找本地作用域,之后是函数内(如有),再全局,最后内置作用域,找到变量名之后才会停止下来,否则报错~~

变量名解析:LEGB原则的更多相关文章

  1. PHP 自定义字符串中的变量名解析

    PHP 自定义字符串中的变量名解析   这样一个需求:页面的 title 可以在后台自定义,自定义内容中可能包含变量,变量用 {$var} 表示, 其中 $var 为变量名 将 title 字段存入数 ...

  2. global nonlocal 闭包构建 变量名解析原则

  3. Python的程序结构[3] -> 变量/Variable[1] -> LEGB 法则

    LEGB法则 / LEGB Rule LEGB 变量搜索顺序 ---- 来源于<Python学习手册>/ Learning Python Page 419 ---- Python 的变量名 ...

  4. python中对变量的作用域LEGB、闭包、装饰器基本理解

    一.作用域 在Python程序中创建.改变.查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域.python的作用域是静态的,在源代码中变量名被赋值的位置决定了该变量 ...

  5. 【好文分享】为什么强烈禁止开发人员使用isSuccess作为变量名

    原文来自阿里云hollies:https://developer.aliyun.com/article/701413   简介: 在日常开发中,我们会经常要在类中定义布尔类型的变量,比如在给外部系统提 ...

  6. JS中变量名和函数名重名

    今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的: var a=100; function a(){ console.log(a ...

  7. javascript变量名提升

    预解析的过程 代码的执行过程 程序在执行过程,会先将代码读取到内存中检查,会将所有的声明在此时进行标记.所谓的标记就是让js解释器直到有这个名字,后面在使用名字的时候,不会出现未定义的错误,这个标记就 ...

  8. js中定义用字符串拼接起来的变量名的变量

    用对象的形式 你的问题可以通过js的对象实现 var ovar = {}; for(var i=0;i<10;i++){ ovar['var_'+i]=''; } 3用数组的形式 var arr ...

  9. 阿里 Java 手册系列教程:为啥强制子类、父类变量名不同?

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 目录 父子类变量名相同会咋样? 为啥强制子类.父类变量名不同? ...

随机推荐

  1. CSerialPort串口类最新修正版(解决关闭死锁问题)

    这是一份优秀的类文件,好多的地方值得我们学习,具体在多线程,事件,自定义消息,类的封装方面等等.Remon提供的串口类网址为:http://codeguru.earthweb.com/network/ ...

  2. Error launching remote program: No such file or directory

    iPhone真机调试报如下错误时,关掉Xcode,重新启动就可以了,注意是关掉Xcode,彻底关掉.Error launching remote program: No such file or di ...

  3. Extjs Gridpanel 动态加载

    colMArray_ljdj=[smQd, {header : /*"代销机构代码"*/"机构", dataIndex : "dxjgdm" ...

  4. Oracle用imp和exp实现数据的导入和导出

    使用方法如下: Imp username/password@connect_string param=value - exp username/password@connect_string para ...

  5. C++中二维数组的动态分配

    C++中二维数组的动态分配 作者:   来源:csdn博客   公布者:admin 时间:2009-04-23 13:55:03   点击:115 C++中一维数组的动态分配十分经常使用,但C++刚開 ...

  6. mac下zsh的使用:主题、z命令

    安装Oh-My-ZSH: `curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh` zs ...

  7. C/C++字符串查找函数

    C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里 ...

  8. 第八章 JVM性能监控与故障处理工具(2)

    注意:该篇博客主要记录自<深入理解java虚拟机(第二版)> 说明:关于命令行的JVM性能监控与故障处理工具见<第七章 JVM性能监控与故障处理工具(1)> 1.图像化的故障处 ...

  9. [leetcode]Binary Tree Level Order Traversal II @ Python

    原题地址:http://oj.leetcode.com/problems/binary-tree-level-order-traversal-ii/ 题意: Given a binary tree, ...

  10. 根据外网ip地址定位用户所在城市

    package com.henu.controller; import java.io.BufferedReader; import java.io.DataOutputStream; import ...