Python 命名空间 及变量搜索规则 属性名称 属性名称 无点号运算的变量名
2014-12-13 18:55
686 查看
无点号运算的变量名与作用域相对应
点号的属性名使用的是对象的命名空间有些作用域会对对象的命名空间进行初始化(模块和类)
简单变量名:如果赋值就不是全局变量
无点号的简单变量名遵循函数的LEGB作用域法则 具体如下啊:赋值语句(X=value):是变量名称为本地变量,在当前作用域内,创建或改变变量名X,除非声明它是全局变量
引用(x):在当前作用域内搜索变量名X,之后是在任何以及所有的嵌套的函数中,然后是在当前的全局作用域中搜索,最后在内置作用域中搜索
属性名称:对象命名空间
点号的属性名指的是特定对象的属性,并且遵循模块和类的规则。就类和实例对象而言,引用规则增加了继承搜索这个流程:赋值语句(object.X=value):在进行点号运算的对象的命名空间内创建或修改属性名X,并没有其他作用。继承树的搜索只发生在属性引用时,而不是属性的赋值运算时
引用(object.x):就基于类的对象而言,会在对象内搜索属性名X,然后是其上所有可读取的类(使用继承搜索流程-从下到上,从左至右),对于不是基于类的对象而言,例如模块,则是从对象中直接读取X
Python命名空间的禅:赋值将变量名分类
继续:
执行后的运行结果:11,11,22,11,33,55,33
导入
执行后的运行结果:66,11,11,22,33,33,55
相关文章推荐
- Python 变量作用域 —— 命名空间与 LEGB 规则
- python 函数 本地变量 函数的命名空间 变量的作用域
- PHP基础之命名空间9——名称解析规则
- 【Python】Python中变量的定义、以及变量的命名规则
- 1.3 Python入门学习之变量的定义 命名规则
- PHP命名空间的名称解析规则
- python学习二:路径搜索、模块加载、变量命名初探
- java中变量名字(标示符名称)的命名规则
- Python基础语法(1)—— 输入输出、变量命名规则、List、Tupple等
- python_变量的命名规则
- python笔记13 - 系统模块,自定义模块的编写,模块的搜索路径,PYTHONPATH环境变量,模块的属性:__doc__, __all__,__file__,标准库模块,包
- python 变量 命名规则
- 零基础学python-10.2 多目标赋值与变量命名规则
- Python 中特殊变量/方法命名规则说明(特别是私有变量)及使用实例
- python 学习记录(5)-变量、模块名的命名规则及random模块使用
- Python 中特殊变量/方法命名规则说明(特别是私有变量)及使用实例
- Python 变量类型及命名规则介绍
- less 嵌套规则、运算、函数、命名空间
- Python 变量类型及命名规则介绍
- python __name__属性带来命名空间问题