Python模块与包

1. 模块与包

1.1 模块的概念

随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。

1.2 模块的优势

提高代码的可维护性。

编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

1.3 模块的分类

python标准库
第三方模块
应用程序自定义模块

1.4 模块导入的方法

import 语句          //推荐
from…import 语句       //推荐
From…import* 语句      //推荐
from modname import *     //此种不推荐

1.5 包的概念

包是指包含__init__.py的模块文件的文件夹,一个包内可以有多个py模块文件,调用包就是执行包下的__init__.py文件(__init__.py可以是空文件,也可以有Python代码)。

1.6 包的优势

A包和B包的目录下的py文件名可以重复,举个例子,A和B包下都存在hello.py,那么引用A包的hello.py模块时候,需要import A.hello.py,引用B包同样就是B.hello.py。

1.7 模块的搜索路径

模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块。

如果sys.path中因为没有路径而找不到相关模块,可以使用如下方法进行添加路径。

import sys,os
M_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(M_DIR)

1.8 关于__name__的值

当程序本身被执行的时候__name__ == ‘__main__‘,否则__name__ == ‘filename本身‘。

2 常用模块

2.1 time模块

2.2 random模块

2.3 OS模块

2.4 sys模块

2.5 

相关推荐