模块与包:Python 编程的“乐高积木”

很多初学者在写 Python 代码时,习惯把所有功能塞进一个文件里,但随着代码量增长,文件会变得臃肿难维护。Python 的模块(Module)包(Package)就是解决这个问题的利器,它们能让代码像乐高积木一样灵活组合。

什么是模块?

模块就是一个 .py 文件,里面可以包含函数、类或变量。比如,你写了一个计算器功能的文件 calculator.py,它就可以作为一个模块被其他程序调用。

示例代码:

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

def subtract(a, b):  
    return a - b  

然后在另一个文件里导入并使用:

import calculator  

result = calculator.add(5, 3)  
print(result)  # 输出 8  

什么是包?

包(Package)是多个模块的集合,它本质上是一个包含 __init__.py 文件的文件夹。例如,你可以创建一个 math_tools 包,里面放不同的数学模块:

math_tools/  
├── __init__.py  
├── calculator.py  
└── statistics.py  

然后可以这样调用:

from math_tools import calculator  

print(calculator.subtract(10, 4))  # 输出 6  

如何管理模块和包?
  1. import 的几种方式

    • import module → 直接导入整个模块
    • from module import function → 只导入某个函数
    • import module as alias → 给模块起别名(比如 import numpy as np
  2. __init__.py 的作用
    这个文件可以是空的,但也可以在里面定义包的初始化逻辑,比如:

    # math_tools/__init__.py  
    from .calculator import add  
    

    这样别人导入包时,可以直接用 math_tools.add() 而不用写完整路径。

  3. sys.path 和自定义模块路径
    如果 Python 找不到你的模块,可能是因为路径没加进去,可以这样临时添加:

    import sys  
    sys.path.append("/path/to/your/module")  
    

实际案例:构建一个小工具包

假设你要写一个数据处理小工具,可以这样组织代码:

my_utils/  
├── __init__.py  
├── data_cleaner.py  # 数据清洗功能  
└── plotter.py      # 画图功能  

然后在代码里调用:

from my_utils import data_cleaner, plotter  

clean_data = data_cleaner.remove_duplicates(raw_data)  
plotter.plot_histogram(clean_data)  

总结
  • 模块 → 单文件,存放函数/类
  • → 多模块的文件夹,带 __init__.py
  • 合理组织代码,避免“一锅炖”
  • import 灵活调用,提高复用性

掌握模块和包后,你的代码会变得更清晰、更易维护,还能轻松分享给他人使用!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐