WEB开发网
开发学院软件开发C语言 从C#到Python —— 5 模块和包 阅读

从C#到Python —— 5 模块和包

 2010-09-30 22:41:39 来源:WEB开发网   
核心提示: 除了Python脚本(不仅限于py,还包括pyc和pyo),从C#到Python —— 5 模块和包(2),import语句还可以导入C或C++扩展(已编译为共享库或DLL文件)、包(包含多个模块,一会介绍)和内建模块(使用C编写并已链接到Python解释器内),__all__是一个list,包

除了Python脚本(不仅限于py,还包括pyc和pyo),import语句还可以导入C或C++扩展(已编译为共享库或DLL文件)、包(包含多个模块,一会介绍)和内建模块(使用C编写并已链接到Python解释器内)。不过除了包,另外两个我也没用过:(

Python解释器在第一次import一个py文件的时候,会尝试将其编译为字节码文件,这个文件的扩展名通常为.pyc,它是已经完成语法检查并转译为虚拟机指令的代码。后边的导入操作会直接读取.pyc文件而不是.py文件,一般而言速度会更快。

5.2  包

Python的模块可以按目录组织为包(package)。一般来说,我们将多个关系密切的模块组织成一个包,以便于维护和使用,同时可有效避免名字空间冲突。创建一个包的步骤是:建立一个名字为包名字的文件夹,并在该文件夹下创建一个__init__.py文件,你可以根据需要在该文件夹下存放脚本文件、已编译扩展及子包。

一个典型的包可能有以下结构:

 1 package1/
 2   __init__.py
 3   subPack1/
 4     __init__.py
 5     module_11.py
 6     module_12.py
 7     module_13.py
 8   subPack2/
 9     __init__.py
10     module_21.py
11     module_22.py
12   ……

只要目录下存在__init__.py,就表明此目录应被作为一个package处理。在最简单的例子中,__init__.py 是一个空文件,不过一般我们都要在__init__.py中做一些包的初始化动作,或是设定一些变量。

最常用的变量是__all__。当使用包的人在用from pack import * 语句导入的时候,系统会查找目录pack下的__init__.py文件中的__all__这个变量。__all__是一个list,包含了所有应该被导入的模块名称,例如:__all__ = ["m1", "m2", "m3"] 表示当from pack import * 时会import 这三个module。

Tags:Python 模块

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接