模块是包含函数和其他语句的python脚本文件,它以 .py 为后缀名。在python中可以通过导入模块,然后使用模块中提供的函数或者数据。
1、导入模块:
import 模块名
import 模块名 as 新名字
from 模块名 import 函数名
>>> import string #只指明模块的导入方法
>>> string.capitalize('use modules')
'Use modules'
>>> capitalize('use modules') #错误的调用方法
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'capitalize' is not defined
>>> from math import sqrt #指明函数的导入方法
>>> sqrt(9)
3.0
>>> math.sqrt(9) #错误的方法
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined
>>>
显然在指明函数的导入方法中,在使用方法时可以不用指明模块名,所以要更方便一些,于是可以将模块的所有函数同时导入。
>>> from string import *
>>> split('user modules')
['user', 'modules']
>>> capitalize('use modules')
'Use modules'
>>>
2)模块的查找路径
python 解释器首先在当前目录中查找导入的模块。如果未找到模块,python解释器会从sys模块中的path变量指定的目录查找导入模块。
在脚本中可以向sys.path添加模块查找路径。下面将当前目录下的module子目录添加到sys.path中。
>>> import os
>>> os.getcwd()
'C://Documents and Settings//asus'
>>> import sys
>>> modulepath = os.getcwd() + '//module'
>>> sys.path.append(modulepath)
>>> print sys.path
['', 'C://WINDOWS//system32//python26.zip', 'C://Python26//DLLs', 'C://Python26/
/lib', 'C://Python26//lib//plat-win', 'C://Python26//lib//lib-tk', 'C://Python26
', 'C://Python26//lib//site-packages', 'C://Documents and Settings//asus//module
']
>>>
3)模块编译
对于模块而言, python 总是在第一次调用后将其编译成字节码的形式的pyc文件,以提高脚本的启动速度。
对于不作为模块的脚本而言,python不会在运行脚本后将其编译成字节码的形式。如果想将其编译的话,可以用如下方式:
#file:complie.py
#
import py_compile #导入py_complile模块
py_compile.compile('usemodule.py') #编译usemodule.py
4)模块运行——__name__ 属性 (在name前后均是两条下划线)
当脚本是独立运行时,__name__属性的值是 __main__ ,当作为模块被导入时,__name__属性的值是模块名

被折叠的 条评论
为什么被折叠?



