python的命名空间
2013-07-05 15:10
351 查看
命名空间:从命名到对象的映射
1. 例子:
内置命名集:包括像abs()这样的函数
模块中的全局命名
函数调用中的局部命名
2. 某种意义上,对象的属性名也算一种命名空间
3. 不同命名空间之间的命名之间没有联系。例如两个模块同时定义了一个名为A的函数,这样不会发生混淆,不过要以模块名为前缀来引用他们
4. 当函数被调用时创建一个局部命名空间
作用域
python程序中一个命名空间可以访问的文法区域,直接访问是指在引用命名时不用加前缀
只有模块、函数、类可以引入作用域,其他代码块不会引入作用域(比如while,if等),这和C、C++、Java很不一样
在python中,使用一个变量不需要先声明它,但是在使用时,它必须已经绑定到一个某个对象中,而变量的绑定将在当前作用域中引入新的命名,同时屏蔽外层作用域中的同名命名
看以下代码例子:
这段代码运行的结果是:
1
9
我们看到,fun中定义了局部变量 i,并且将全局变量 i 屏蔽了
以下内容摘自:http://www.cnblogs.com/frydsh/archive/2012/08/12/2602100.html
在Python中,名字绑定在所属作用域中引入新的变量,同时绑定到一个对象。名字绑定发生在以下几种情况之下:
1.参数声明:参数声明在函数的局部作用域中引入新的变量;
2.赋值操作:对一个变量进行初次赋值会在当前作用域中引入新的变量,后续赋值操作则会重新绑定该变量;
3.类和函数定义:类和函数定义将类名和函数名作为变量引入当前作用域,类体和函数体将形成另外一个作用域;
4.import语句:import语句在当前作用域中引入新的变量,一般是在全局作用域;
5.for语句:for语句在当前作用域中引入新的变量(循环变量);
6.except语句:except语句在当前作用域中引入新的变量(异常对象)。
在Python中,类定义所引入的作用域对于成员函数是不可见的,这与C++或者Java是很不同的,因此在Python中,成员函数想要引用类体定义的变量,必须通过self或者类名来引用它。
1. 例子:
内置命名集:包括像abs()这样的函数
模块中的全局命名
函数调用中的局部命名
2. 某种意义上,对象的属性名也算一种命名空间
3. 不同命名空间之间的命名之间没有联系。例如两个模块同时定义了一个名为A的函数,这样不会发生混淆,不过要以模块名为前缀来引用他们
4. 当函数被调用时创建一个局部命名空间
作用域
python程序中一个命名空间可以访问的文法区域,直接访问是指在引用命名时不用加前缀
只有模块、函数、类可以引入作用域,其他代码块不会引入作用域(比如while,if等),这和C、C++、Java很不一样
在python中,使用一个变量不需要先声明它,但是在使用时,它必须已经绑定到一个某个对象中,而变量的绑定将在当前作用域中引入新的命名,同时屏蔽外层作用域中的同名命名
看以下代码例子:
i = 1 def fun(): i = 9 print i fun() print i
这段代码运行的结果是:
1
9
我们看到,fun中定义了局部变量 i,并且将全局变量 i 屏蔽了
以下内容摘自:http://www.cnblogs.com/frydsh/archive/2012/08/12/2602100.html
在Python中,名字绑定在所属作用域中引入新的变量,同时绑定到一个对象。名字绑定发生在以下几种情况之下:
1.参数声明:参数声明在函数的局部作用域中引入新的变量;
2.赋值操作:对一个变量进行初次赋值会在当前作用域中引入新的变量,后续赋值操作则会重新绑定该变量;
3.类和函数定义:类和函数定义将类名和函数名作为变量引入当前作用域,类体和函数体将形成另外一个作用域;
4.import语句:import语句在当前作用域中引入新的变量,一般是在全局作用域;
5.for语句:for语句在当前作用域中引入新的变量(循环变量);
6.except语句:except语句在当前作用域中引入新的变量(异常对象)。
在Python中,类定义所引入的作用域对于成员函数是不可见的,这与C++或者Java是很不同的,因此在Python中,成员函数想要引用类体定义的变量,必须通过self或者类名来引用它。
相关文章推荐
- Python 作用域和命名空间
- python-命名空间
- python命名空间
- 【Python】 命名空间与LEGB规则
- 从Python的两种导入模块(from import和import)方式谈命名空间与作用域
- Python进阶 - 命名空间与作用域
- Python 命名空间和LEGB规则
- Python命名空间和作用域窥探
- Python的命名空间和作用域
- Python命名空间总结 - “命名空间之禅”
- python学习笔记——模块和命名空间
- Python开发基础-Day6-函数参数、嵌套、返回值、对象、命名空间和作用域
- Python进阶 - 命名空间与作用域
- python 命名空间
- python :__future__模块简介、命名空间简介、with语句
- Python模块与命名空间
- Python命名空间的本质
- Python命名空间和作用域窥探
- 飘逸的python - 保持命名空间的整洁
- Python 命名空间