码迷,mamicode.com
首页 > 其他好文 > 详细

12ch

时间:2015-05-17 00:34:43      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

sys.path可以看到当你import 时搜索的路径,为了引用自己的模块,我们可以使用:

sys.path.append(‘/homw/py/lib‘)

使用sys.modules可以找到当前导入了那些模块和它们来自何处,sys.modules是一个字典,

使用模块名作为键,对应物理地址作为值。

12.3名称空间

名称空间是名称(标识符)到对象的映射,向名称空间添加名称的过程涉及绑定标识符到对象(以及

该对象引用计数加1)《Python语言草靠手册》中指出:“changing the mapping of a
name is called rebinding[, and] removing a name is unbinding.”

在程序执行期间有两个或三个活动的名称空间,分别是:局部名称空间,全局名称空间,内建名称空间,

其中局部名称空间在执行期间不断变换。

名称空间调用顺序:

Python解释器首先加载内建名称空间,它由__builtins__模块

中的名字构成。随后加载执行模块的全局名称空间,并在模块开始执行后变为活动名称空间。

如果在执行期间调用了一个函数,将加载局部名称空间。

 

12.3.1名称空间与变量作用域

技术分享

也就是说,名称空间是互相独立的,作用域是相互包括的。

名称空间的查找顺序如图所示,local的名称会屏蔽global的名称。

12.3.3无限制的名称空间

你可以为一个类添加属性,仅仅使用emptyclass.x = something这样简单的语句。

12.4导入模块

import的顺序最好是:Python标准库模块, Python第三方模块, 应用程序自定义模块

你可以使用as来重命名你导入的模块,比如 from cgi import FieldStorage as form

python会自动忽略重复的导入。

为了避免总是使用句点访问,你可以使用from module import var,这样就可以使用

var而不是module.var,你应该避免使用from module import*,除非你要使用

Tkinter,Numpy,socket等属性非常多的模块。

12.6模块内建函数

globals(),locals()

返回一个字典,包含对应的名字空间

reload()

重新导入一个模块,该模块必须是完全导入没有使用from-import的,另外reload()的参数

是模块名而不是字符串

12.7包

包是一个有层次的文件目录结构

Phone/
  __init__.py
  common_util.py
  Voicedta/
    __init__.py
    Pots.py
    Isdn.py
  Fax/
    __init__.py
    G3.py
  Mobile/
    __init__.py
    Analog.py
    Digital.py
  Pager/
    __init__.py
    Numeric.py

 

12ch

标签:

原文地址:http://www.cnblogs.com/autoria/p/4508920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!