总结下最近学习learning python模块部分的收获吧。
python
模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。ide
1、模块搜索路径学习
模块必须在导入以后才能使用,因此首先就须要明白如何肯定模块的搜索路径。编码
一、程序主目录编译器
二、PYTHONPATH(环境变量)目录it
三、标准连接库目录编译
四、任何.path文件的内容class
以上4部分组成了sys.path的内容。import
2、模块编译变量
在找到合适的模块文件以后,编译器会将.py代码文件编译成为.pyc“字节码”文件,字节码是python特有的一种编码,.py文件编译成为.pyc的字节码文件,而后解释.pyc字节码文件,能够加快程序的执行速度,.pyc也是能够直接运行的,所以,发布.pyc文件能够避免发布源代码。只有被导入的文件才会在硬盘中留下字节码文件,顶层文件的字节码文件在程序执行完以后就被丢弃了。
3、模块导入
模块的导入主要有两种方法,一是使用improt语句,二是使用from ... import ...。我的偏向于使用import语句,由于这样能比较清晰的告诉读者每个变量是从哪一个模块中导入的。imp.reload()能够实现模块重载。
4、模块包
若是模块在一个较深的目录中,此时的导入就须要使用模块包导入的技巧了。如模块在目录dir0/dir1/dir2/mod.py下,但只有dir0在模块的检索目录列表中,此时直接使用import mod语句是没法导入mod模块的。咱们能够import dir1.dir2.mod来导入此模块,但有两个前提条件:一、dir0必须在模块的检索目录中;二、在dir一、dir2目录下必须存在__init__.py文件,此文件能够为空,但必须存在,目的是防止重名的目录出如今模块检索目录的前面,在模块导入是产生歧义。