一、什么是模块
随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。
为了编写可维护的代码,我们根据业务逻辑的不同把函数或类分组,分别放到不同的文件里。
逻辑上来说模块就是一组功能的组合;实际上在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开源模块库: