目录
[二、Python 模块介绍与使用](#二、Python 模块介绍与使用)
[2.1 什么Python 模块](#2.1 什么Python 模块)
[2.1.1 模块有什么作用](#2.1.1 模块有什么作用)
[2.2 Python 模块导入方式](#2.2 Python 模块导入方式)
[2.3 基本模块导入使用](#2.3 基本模块导入使用)
[2.4 自定义模块](#2.4 自定义模块)
[2.4.1 自定义模块案例](#2.4.1 自定义模块案例)
[2.4.2 __all__说明](#2.4.2 __all__说明)
[2.5 Python 包使用](#2.5 Python 包使用)
[2.5.1 什么是python 包](#2.5.1 什么是python 包)
[2.5.2 包的导入形式](#2.5.2 包的导入形式)
[2.5.3 模块导入使用](#2.5.3 模块导入使用)
一、前言
模块是 Python 组织代码的基本单位,通过把相关功能的代码放在同一个文件中,可以让代码结构更清晰、更易于维护。本文详细介绍下Python 中模块的使用。
二、Python 模块介绍与使用
2.1 什么Python 模块
Python模块(module):一个·py文件就是一个模块,模块是Python程序的基本组织单位。在模块中可以定义变量、函数、类,以及可执行的代码。
比如在Python 中有一些内置的模块,可以直接拿来使用,如下:

2.1.1 模块有什么作用
整体来说,模块有如下作用:
-
代码复用:将常用的功能封装到模块中,可以在多个程序中重复使用。
-
命名空间管理:模块可以避免命名冲突,不同模块中的同名函数或变量不会互相干扰。
-
代码组织:将代码按功能划分到不同的模块中,使程序结构更清晰。
2.2 Python 模块导入方式
在Python 中,在使用模块中提供的功能之前,必须得先导入,再使用。导入模块的方式有下面几种:

总结来说,模块导入常用的方式如下:
-
import 块名as 别名
-
from 模块名import 功能名as别名
-
from 模块名 import *
2.3 基本模块导入使用
下面看几个具体的示例。
1、导入模块
bash
# 导入模块
import random
import random as rd
for i in range(10):
print(random.randint(1, 100))
print()
for i in range(10):
print(rd.randint(1, 100))

2、导入模块中的功能
bash
# 导入模块中的功能
from random import randint
for i in range(10):
print(randint(1, 100))
print()
# 带别名的方式
from random import randint as rint
for i in range(10):
print(rint(1, 100))
# 导入模块中的所有功能
from random import *
for i in range(10):
print(randint(1, 100))

2.4 自定义模块
当开发一些复杂的项目,为了让项目结构更清晰,更便于项目的维护管理及代码的复用,可能会把一个项目拆分为若干个模块,比如在下面这张图中,在不同的py文件中分别定义了一些方法,最终在某个py文件中需要调用相关功能的时候只需要通过import 加载进来就可以使用了。
-
需要注意:
- 每一个python文件都可以作为一个模块,模块的名字就是文件的名字(建议使用python标识符定义,规范命名)。

2.4.1 自定义模块案例
首先,在第一个py文件中定义一些方法,如下:
python
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x / y

编写第二个py文件,导入并使用第一个py文件中的方法
python
import my_func
print(my_func.add(1,2))
print(my_func.subtract(23,2))

运行效果如下:

如果是导入该模块下的具体功能,可以参考下面的写法
python
from my_func import multiply
print(multiply(2,3))

2.4.2 __all__说明
这是一个模块级别的特殊变量,用于指定from 模块名import*时会导入哪些功能(*通配了哪些功能)。如下,对第一模块做改造:
python
__all__ = [
'add',
'divide',
]
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x / y
if __name__ == '__main__':
print(add(1,2))

此时,如果在第二个py模块中调用的时候,可以看到显示边缘问题,即无法直接使用第一个模块中的这个方法

如果换成另一个方法调用就可以了

注意:
注意:__all__控制的是from ... impor功能 import*时,要导入的功能,并不会影响直接导入具体的功能(如: from ... Import XXX)
2.5 Python 包使用
2.5.1 什么是python 包
包本质就是一个文件夹,该文件夹中可以包含若干python模块(.py文件),文件夹下还包含了一个__init__.Py
- 模块文件较多时,用来管理多个模块。(包的本质也是一个模块)
2.5.2 包的导入形式
在实际使用中,包的导入主要有下面这些形式
- 在通过1from 包名import*!导入全部模块的时候,需要在__init__.py 文件中添加'all=\[\]',控制允许导入的模块列表

2.5.3 模块导入使用
为了演示模块使用,首先创建一个utils模块

在init 文件中,通常添加一些初始化的信息,比如模块描述、模块的功能说明、配置信息等
python
__version__="1.0.0"
__author__="jike"
__all__ = ["my_func","my_vay"]
接着再提供2个py文件,一个定义常量,一个定义几个方法
python
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x / y
最后在其他的py文件中进行调用
python
# 导入模块
import utils.my_func
res = utils.my_func.add(1,2)
print(res)
from utils import my_func
res2 = my_func.add(3,5)
print(res2)
from utils import *
res3 = my_func.add(3,13)
print(res3)
# 导入模块中的功能(方法)
from utils.my_func import add,subtract,multiply
print(add(3,9))
三、写在最后
本文详细介绍了Python中模块的使用,希望对看到的同学有用,本篇到此结束,感谢观看。