1. 定义
模块是一个包含所有你定义的函数和变量的文件
,其后缀名是.py
。
模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。
python模块是一个 python文件,定义了各种功能接口
。把复杂的功能封装为模块(又称为库),将功能实现的细节隐藏起来,使用该模块(库)的开发人员不需要了解实现的细节
。通过调用模块封装好的功能,可以用仅仅几行 python代码实现某项复杂的功能
,例如可以用一行代码就实现一个 Web 服务器。在 Python 的应用领域中,如:web 开发、人工智能、网络爬虫、数据分析等领域,已经存在了大量的模块,使用这些模块就可以轻松开发出应用程序。
import sys # 引入模块
print(sys.path) # sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表
2. 模块分类
(1)
内置模块
:由 python官方提供,包含在 python的安装包中,安装完 python 后即可使用。python 提供了多个内置模块,提供了日常编程中许多问题的标准解决方案,常见的内置模块如:os、sys、math、random、json、datetime等等。
(2)
第三方模块
:由 python 爱好者提供,需要用户额外安装。
3. import语句
在 python 用 import
或者 from...import
来导入相应的模块。
import module1[, module2[,... moduleN]
一个模块只会被导入一次,不管你执行了多少次 import
。这样可以防止导入模块被一遍又一遍地执行。
当我们使用 import 语句的时候,python 解释器是怎样找到对应的文件的呢?
这就涉及到 python 的搜索路径,搜索路径是由一系列目录名组成的,python 解释器就依次从这些目录中去寻找所引入的模块
。
搜索路径是在 python 编译或安装的时候确定的
,安装新的库应该也会修改。搜索路径被存储在 sys 模块中的 path 变量
。
import sys
print(sys.path)
4. from…import语句
以下将模块名统一使用 module
, 函数名使用function
代替。
总之,整个语法格式就是这样:从 哪个模块之中 导入 哪些函数
(1)
从某个模块中导入某个/多个函数: from
module import
function1[,function2,function3…]
(2)
将某个模块中的全部内容导入: from
module import *
5. 为导入的模块起别名
另外,我们可以导入的模块和函数起别命名,因为不同模块中的函数名有可能同名,此时就需要起别名了。
import
module as
modleName
from
module import
function as
functionName
6. __name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行
。
每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入
。
# temp.py
if __name__ == '__main__':
print('程序自身在运行')
else:
print('我来自另一模块')
# temp1.py
import temp
7. 用户自定义模块
模块 selfUtils.py
:定义了函数 Add、函数 Sub 和变量 COUNT,它们是模块提供的接口;
主程序 main.py
:使用模块的接口函数和导出变量。
# selfUtils.py
COUNT = 100
def Add(a, b):
return a + b
def Sub(a, b):
return a - b
# main.py
from selfUtils import Add # 导入selfUtils模块中的Add接口
from selfUtils import Sub
from selfUtils import COUNT as count # 为导入的COUNT变量起别名
print('sum is:>', Add(1,2))
print('sub is:>', Sub(1,2))
print('count is:>', count)