资源描述:
《dave-python-练习十四----模块》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Dave-Python-练习十四----模块DavePython练习十四--模块DavePython练习十四--模块分类:默认分类日期:2011-09-1516:15原文地址:http://blog.csdn.net/tianlesoftware/article/details/6778706分类:Python2011-09-1516:15785人阅读评论(0)收藏举报#encoding=utf-8##*****************模块*************************##**
2、********Part1:什么是模块**************#模块支持从逻辑上组织Python代码。当代码量变得相当大的时候,我们最好把代码分成一#些有组织的代码段,前提是保证它们的彼此交互。这些代码片段相互间有一定的联系,可能是一个#包含数据成员和方法的类,也可能是一组相关但彼此独立的操作函数。这些代码段是共享的,所以#Python允许"调入"一个模块,允许使用其他模块的属性来利用之前的工作成果,实现代码重用.#这个把其他模块中属性附加到你的模块中的操作叫做导入(imp
3、ort)。那些自我包含并且有组织的代#码片断就是模块(module)。#模块是用来组织Python代码的方法,而包则是用来组织模块的。##**********Part2:模块和文件**************#如果说模块是按照逻辑来组织Python代码的方法,那么文件便是物理层上组织模块的方法。#因此,一个文件被看作是一个独立模块,一个模块也可以被看作是一个文件。模块的文件名就是模#块的名字加上扩展名.py。与其它可以导入类(class)的语言不同,在Python中你导入的是模块或模块属性。##2
4、.1模块名称空间#一个名称空间就是一个从名称到对象的关系映射集合。模块名称是它们的属性名称中的一个重要部分。例如#string模块中的atoi()函数就是string.atoi()。给定一个模块名之后,只可能有一个模块被#导入到Python解释器中,所以在不同模块间不会出现名称交叉现象;所以每个模块都定义了它自#己的唯一的名称空间。如果我在我自己的模块mymodule里创建了一个atoi()函数,那么它的名#字应该是mymodule.atoi()。所以即使属性之间有名称冲突,但它们的完整授权名称(
5、fully#qualifiedname)——通过句点属性标识指定了各自的名称空间-防止了名称冲突的发生。##2.2搜索路径和路径搜索#模块的导入需要一个叫做"路径搜索"的过程。即在文件系统"预定义区域"中查找mymodule.py#文件(如果你导入mymodule的话)。这些预定义区域只不过是你的Python搜索路径的集合。路径#搜索和搜索路径是两个不同的概念,前者是指查找某个文件的操作,后者是去查找一组目录。有时#候导入模块操作会失败:#>>&
6、gt;importxxx#Traceback(innermostlast):#File"<interactiveinput>",line1,in?#ImportError:Nomodulenamedxxx#发生这样的错误时,解释器会告诉你它无法访问请求的模块,可能的原因是模块不在搜索路#径里,从而导致了路径搜索的失败。#默认搜索路径是在编译或是安装时指定的。它可以在一个或两个地方修改。#一个是启动Python的shell或命令行的PYTHONPATH环境变量。该变量
7、的内容是一组用冒#号分割的目录路径。如果你想让解释器使用这个变量,那么请确保在启动解释器或执行Python脚#本前设置或修改了该变量。#解释器启动之后,也可以访问这个搜索路径,它会被保存在sys模块的sys.path变量里。#不过它已经不是冒号分割的字符串,而是包含每个独立路径的列表。下面是一个Unix机器搜索路#径的样例。切记,搜索路径在不同系统下一般是不同的。#importsys#print(sys.path)#-->#['E:\MyEclipseWorkplace\MyPython
8、\src\Practice','E:\MyEclipseWorkplace\MyPython\src',#'C:\Python32\DLLs','C:\Python32\lib','C:\Python32','C:\Python32\lib\site-packages',#'C:\Windows\system32\python32.zip']#这只是个列表,所以我们可以随时随地对它进行修改。如果你知道你需要导入的模块是什么,#而它的路径不在搜索路径里