python基础语法复习08——模块化编程

python基础语法目录

python基础语法01——基本类型
python基础语法02——复合类型
python基础语法03——语句构成
python基础语法04——函数
python基础语法05——递归及装饰器
python基础语法06——类与对象
python基础语法07——迭代器与生成器



前言

在 Python 开发中,模块化编程是组织代码、提升可维护性和复用性的核心思想。通过模块和包,开发者可以将复杂的功能拆解为独立的单元,同时借助系统模块和第三方库快速构建功能。


一、模块(Module)

1.1 什么是模块?

在 Python 中,模块 是组织代码的基本单元,通常是一个以 .py 为扩展名的文件,包含函数、类、变量或可执行代码。模块化编程的核心思想是将复杂程序拆分为独立、可复用的代码块,从而提高代码的可维护性和协作效率 。

例如:

# math_utils.py
def add(a, b):
    return a + b

1.2 模块使用

  • 定义
    创建一个 .py 文件,文件名即为模块名。模块中可以定义函数、类、变量等,例如 math_utils.py 包含数学运算函数 。

  • 导入
    Python 通过 import 语句导入模块,支持以下方式:

  import 模块名  [as 模块新名字1]

导入一个模块到当前程序

   from 模块名 import 模块属性名 [as 属性新名]

导入一个模块内部的部分属性到当前程序

  from 模块名 import *

导入一个模块内部的全部属性到当前程序

模块中的代码在首次导入时会执行一次,通常用于初始化操作(如加载配置)。

1.3 模块分类

1.3.1 系统模块(内置模块)

Python 标准库自带的模块,无需安装即可使用

特点

  • 即用即导入:直接import即可使用。
  • 性能高效:通常使用 C 语言实现。

常见系统模块:

模块功能官方文档
math数学运算https://docs.python.org/zh-cn/3.12/library/math.html
os操作系统接口https://docs.python.org/zh-cn/3.13/library/os.html
os.path路径相关https://docs.python.org/zh-cn/3.13/library/os.path.html
datetime日期和时间https://docs.python.org/zh-cn/3.13/library/datetime.html
random随机数生成https://docs.python.org/zh-cn/3.13/library/random.html
time时间https://docs.python.org/zh-cn/3.13/library/time.html

1.3.2 第三方模块

由社区或开发者维护的模块,需通过 pip 安装

常见第三方模块:

模块功能示例
numpy数值计算科学运算、矩阵操作
pandas数据分析数据清洗与处理
matplotlib数据可视化绘制图表
requestsHTTP请求处理爬取网页内容,调用API
flaskWeb应用框架快速搭建Web服务

1.3.3 自定义模块

开发者根据需求自行编写的模块,例如 data_processing.py 或 utils.py。通过模块化拆分,可将项目逻辑解耦,便于团队协作 。

  • 创建模块
    示例,创建一个utils.py文件:
# utils.py
def add(a, b):
    return a + b

def greet(name):
    return f"Hello, {name}!"
  • 使用模块
    创建一个main.py文件,并导入自定义模块:
# main.py
import utils
# 若需要跨文件夹使用,假设main.py与utils目录同级
from utils.math_utils import add 

print(utils.add(3, 5))  # 输出: 8
print(utils.greet("Alice"))  # 输出: Hello, Alice!

二、包(Package)

2.1 什么是包?

包 是模块的集合,用于组织多个模块。通常是一个包含多个 .py 文件的目录,并包含一个特殊的 init.py 文件(Python 3.3+ 可省略)。包的核心作用是将模块按功能分类,形成层次化的代码结构。

文件 __init__.py 可为空,也可以包含初始化代码。

例如,一个包的结构可能如下:

my_package/
├── __init__.py
├── module1.py
└── module2.py

2.2 包的结构与使用

结构:

my_package/
    __init__.py
    module1.py
    module2.py
    subpackage/
        __init__.py
        module3.py

导入:

  • 同模块的导入规则
import 包名 [as 包别名]
import 包名.模块名 [as 模块新名]
import 包名.子包名.模块名 [as 模块新名]
    
from 包名 import 模块名 [as 模块新名]
from 包名.子包名 import 模块名 [as 模块新名]
from 包名.子包名.模块名 import 属性名 [as 属性新名]
  • 导入包内的所有子包和模块
from 包名 import *
from 包名.模块名 import *`

2.3 init.py

一般来讲是要有的,如果是Python 3.3+ ,则没有这个文件也可以。

_ _ i n i t _ _ . p y \_\_init\_\_.py __init__.py 用于初始化Python包或模块,作用有:

  1. 标识包目录: 告诉Python解释器当前目录应被视为一个包。
  2. 执行初始化代码: 可以包含任何代码,通常用于包的初始化操作,如变量初始化、导入模块等。这些代码在包被导入时执行。
  3. 控制包的导入行为: 通过 __all__ 变量明确指定从包中可以导入哪些模块,从而限制包的公开接口。
  4. 提供包级别的命名空间: __init__.py 中定义的变量和函数可以在包的模块中共享。
  5. 批量导入模块: 可以在 __init__.py 文件中批量导入模块,这些模块可以更方便地使用。

三、补充

3.1 模块与包的区别

模块
一个Python文件一个包含__init__.py的文件夹
提供基本功能单元用于组织多个模块
文件名为.py目录名

3.2 解析顺序

在使用 import module_name时,Python 会按照特定顺序搜索并加载模块。

查找优先级查找位置说明
1️⃣ 内置 C 扩展模块sys.builtin_module_namesmath, sys, time, os
2️⃣ sys.modules 缓存sys.modules避免重复加载
3️⃣ 当前目录os.getcwd()同名文件或目录
4️⃣ PYTHONPATH 变量sys.path环境变量指定的路径
5️⃣ Python 标准库/usr/lib/python3.x/Lib/标准 Python 库
6️⃣ site-packages(第三方库)site.getsitepackages()pip install 安装的模块

总结

模块化编程是 Python 开发的核心思想,通过模块和包实现代码的结构化管理:

  • 模块 是代码的基本单元,支持系统模块、第三方模块和自定义模块。
  • 包 是模块的集合,通过目录结构组织代码,提升可维护性。
  • 系统模块 (如 os、datetime)提供基础功能,而 第三方模块 (如 numpy、flask)扩展了 Python 的应用场景。

合理利用模块化编程思想,可显著提升代码质量、开发效率和团队协作能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值