Python 模块 vs 包:

Python 模块 vs 包:概念区别 + 举例

 
这是 Python 最基础也最核心的概念,我用最简单直白的方式给你讲清楚,一看就懂。
 

一、核心区别(一句话总结)

 
  • 模块(Module):一个 .py 文件就是一个模块,用来存放函数、类、变量。
  • 包(Package):一个文件夹,里面包含多个模块 + 一个 __init__.py,用来组织和管理多个模块。
 
表格
 
名称本质形式作用
模块 单个文件 xxx.py 存放代码、复用代码
文件夹 包含 .py 文件的目录 分类管理多个模块
 

 

二、模块(Module)举例

 

1. 定义模块

 
新建一个文件 math_tools.py,这就是一个模块:
 
python
 
运行
 
 
 
# math_tools.py  这就是一个模块!

def add(a, b):
return a + b

def multiply(a, b):
return a * b

PI = 3.14159

 
 

2. 使用模块

 
在另一个文件里直接导入使用:
 
python
 
运行
 
 
 
# 导入模块
import math_tools

使用模块里的函数

print(math_tools.add(2, 3)) # 5
print(math_tools.multiply(2, 3)) # 6
print(math_tools.PI) # 3.14159

 
 
模块 = 1 个 .py 文件
 

 

三、包(Package)举例

 

1. 定义包

 
创建一个文件夹,名字叫 my_package,这就是一个包。
 
包的结构必须是:
 
plaintext
 
 
my_package/          # 这是一个包(文件夹)
    __init__.py      # 包的标志文件(必须有)
    math_tools.py    # 模块1
    string_tools.py  # 模块2
 
 
  • __init__.py:可以是空文件,但必须存在,Python 才会把这个文件夹识别为包。
 

2. 包里面的模块

 
math_tools.py(同上)
 
string_tools.py
 
python
 
运行
 
 
 
# string_tools.py

def upper(s):
return s.upper()

def lower(s):
return s.lower()

 
 

3. 使用包

 
python
 
运行
 
 
 
# 从包里导入模块
from my_package import math_tools
from my_package import string_tools

print(math_tools.add(10, 20)) # 30
print(string_tools.upper("hello")) # HELLO

 
 
包 = 一个文件夹 + 里面的多个模块
 

 

三、最直观的比喻

 
  • 模块 = 一本书(.py 文件)
  • 包 = 一个书架(文件夹),里面放了多本书
 
你可以直接拿 ** 一本书(模块)用,
 
也可以从书架(包)** 里拿出某本书来用。
 

 

四、快速判断

 
  1. 看到 .py 文件 → 模块
  2. 看到文件夹 + __init__.py → 包
  3. 包是模块的集合,模块是包的组成部分
 

 

总结

 
  1. 模块:单个 .py 文件,用于存放代码
  2. 包:包含多个模块的文件夹,必须有 __init__.py
  3. 关系:包包含模块,模块组成包
posted @ 2026-05-28 19:51  szmtjs10  阅读(5)  评论(0)    收藏  举报