模块Module
模块是包括Python定义和声明的文件。模块名就是文件名去掉后缀.py。模块的模块名可由全局变量__name__得到。引用时只需要导入该模块即可:import fibo。但是这样不会直接将模块的函数导入到当前的语义表;只是引入了模块名fibo。可以通过模块名访问函数或者将函数赋给一个本地名字。import还可以直接从被导入的模块中导入命名到本模块的语义表中。如from module1 import function1, function2。导入一个模块时,解释器首先在当前目录中搜索,然后在环境变量PYTHONPATH表示的目录列表中搜索,然后是环境变量PATH中的路径列表。最后搜索安装目录。实际上,解释器由sys.path变量指定的路径目录搜索模块。对于一个moudle.py脚本,成功编译后,会试图编译对应的module.pyc文件,以-O参数调用mdule.py时,会生成优化代码并保存在.pyo中。来自.pyc或者.pyo文件中的程序不会比.py文件的运行更快,只是在加载时快一些。Python带有一个标准模块库,并发布独立的文档。一些模块也内置于解释器中,sys模块内置于所有的Python解释器。变量sys.ps1和sys.ps2定义了主提示符和副提示符。sys.path是解释器搜索路径的字符串列表。可用字符串修改。
内置函数dir()用于按模块名搜索模块定义,它返回一个字符串类型的存储列表:
但是dir()不会列出内置函数和变量名。如果想列出这些内容,在标准__builtin__中定义。
包模块使用”原点模块名“的结构化模块命名空间。包模块路径下必须由__init__.py文件的存在。包用户可以从包中导入合法的模块。导入后引用需要通过完整的名称来引用。使用from package import module的方式导入时,可以不加前缀。from package import *是否导入特定的字模块,需要package下__init__.py文件中包含的__all__来确