一、什么是模块

随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。

为了编写可维护的代码,我们根据业务逻辑的不同把函数或类分组,分别放到不同的文件里。

逻辑上来说模块就是一组功能的组合;实际上在Python中,一个.py文件就称之为一个模块(Module)。

 

二、使用模块的好处

1、提高可维护性

2、可重用

3、避免函数名和变量名冲突

 

三、模块的分类

1、内置标准模块(又称标准库)。执行help('modules')查看所有Python所有自带模块列表。

2、第三方开开源块。可通过pip install 模块名 直接联网安装,如flask等

>>> pip install flask

3、自定义模块。自己编写的功能模块即.py文件。

 

四、导入模块

1、import somemodule 导入模块的所有方法

  调用模块内的类、函数或变量时,需要以module.xxx的方式。

>>> import math
>>> math.floor(10.1)
10

2、from somemodule import somefunction  导入模块的单个方法

  这种方式可以节省写长串导入路径的代码,但要小心名字冲突。

>>> from math import sqrt
>>> sqrt(4)
2.0

3、from somemodule import somefunction, anotherfunction, yetanotherfunction

>>> from math import floor, sqrt
>>> floor(10.1)
10
>>> sqrt(4)
2.0

4、from somemodule import *  导入模块的所有方法 (不推荐)

  将模块内的所有内容全部导入。非常容易发生命名冲突,请慎用!

5、import somemodule as anothermodule    from somemodule import somefunction as anotherfunction  导入时重命名

为了避免导入时重名,可以给导入的模块或者模块内容进行重命名。

>>> import math as mh
>>> mh.floor(10.1)
10
>>> from math import sqrt as st
>>> st(4)
2.0

 

五、包

当模块文件越来越多,就需要对文件进行管理,比如把与联系人相关的都放一个文件夹,把与公司相关的放一个文件夹。

Python这种按文件目录来组织模块的方法,称为包(Package),包是模块的集合,比模块又高一级的封装。通俗来说,在一个文件夹里面可以管理多个模块文件,这个文件夹就被称为包。

 

要被Python视为包,目录必须包含文件__init__.py。如果像普通模块一样导入包,文件__init__.py的内容就是包的内容。

例如一个名为constants的包,而文件constants/__init__.py包含语句 PI = 3.14,那么可以这样导入包:

import constants
print(constants.PI)

 

要将模块加入包中,只需将模块文件放在包目录中即可。

你还可以在包中嵌套其他包。



参考文章:
https://www.jianshu.com/p/fce920673691

Python开源模块库:

http://pypi.python.org/pypi