Python进阶03 模块
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!
我们之前看到了函数和对象。从本质上来说,它们都是为了更好的组织已经有的程序,以方便重复利用。
模块 (module)也是为了同样的目的。在 Python 中,一个.py 文件就构成一个模块。通过模块,你可以调用其它文件中的程序。
引入模块
我们先写一个 first.py 文件,内容如下:
def laugh():
print 'HaHaHaHa'
再写一个 second.py,并引入 first 中的程序:
import first
for i in range(10):
first.laugh()
在 second.py 中,我们使用了 first.py 中定义的 laugh() 函数。
引入模块后,可以通过模块. 对象的方式来调用引入模块中的某个对象。上面例子中,first 为引入的模块,laugh() 是我们所引入的对象。
Python 中还有其它的引入方式,
import a as b # 引入模块 a,并将模块 a 重命名为 b
from a import function1 # 从模块 a 中引入 function1 对象。调用 a 中对象时,我们不用再说明模块,即直接使用 function1,而不是 a.function1。
from a import * # 从模块 a 中引入所有对象。调用 a 中对象时,我们不用再说明模块,即直接使用对象,而不是a. 对象。
这些引用方式,可以方便后面的程序书写。
搜索路径
Python 会在以下路径中搜索它想要寻找的模块:
- 程序所在的文件夹
- 标准库的安装路径
- 操作系统环境变量 PYTHONPATH 所包含的路径
如果你有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便 Python 可以找到。
模块包
可以将功能相似的模块放在同一个文件夹(比如说 this_dir)中,构成一个模块包。通过
import this_dir.module
引入 this_dir 文件夹中的 module 模块。
该文件夹中必须包含一个__init__.py的文件,提醒 Python,该文件夹为一个模块包。__init__.py 可以是一个空文件。
总结
import module
module.object
__init__.py