【Python基础】Python 模块使用详解

目录

一、前言

[二、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 中,在使用模块中提供的功能之前,必须得先导入,再使用。导入模块的方式有下面几种:

总结来说,模块导入常用的方式如下:

  1. import 块名as 别名

  2. from 模块名import 功能名as别名

  3. 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中模块的使用,希望对看到的同学有用,本篇到此结束,感谢观看。