DukeDuke
主页
文档转换
关于我们
主页
文档转换
关于我们
  • 什么是Python
  • Python简介
  • Python安装
  • Python基础语法
  • Python数据类型
  • Python数字
  • Python字符串
  • Python列表
  • Python元组
  • Python字典
  • Python日期时间
  • Python文件操作
  • Python异常处理
  • Python函数
  • Python类
  • Python模块
  • Python包
  • Python多线程
  • Python面向对象
  • Python爬虫
  • Django web框架

Python 模块

什么是模块?

在 Python 中,模块是一个包含 Python 定义和语句的文件。文件名就是模块名加上 .py 后缀。模块可以包含函数、类和变量,也可以包含可运行的代码。

模块的优势

  1. 代码组织:将相关的代码组织在一起,使代码结构更清晰
  2. 代码重用:可以在不同的程序中重复使用模块
  3. 命名空间:避免命名冲突
  4. 封装:隐藏实现细节,只暴露必要的接口

导入模块

基本导入方式

# 导入整个模块
import math

# 使用模块中的函数
result = math.sqrt(16)

# 导入特定函数
from math import sqrt

# 直接使用函数
result = sqrt(16)

# 导入多个函数
from math import sqrt, pow, sin

# 使用别名
import numpy as np
from math import sqrt as square_root

导入所有内容(不推荐)

from math import *  # 不推荐,可能导致命名冲突

模块搜索路径

Python 在导入模块时会按照以下顺序搜索:

  1. 当前目录
  2. PYTHONPATH 环境变量中的目录
  3. Python 标准库目录
  4. site-packages 目录(第三方包安装位置)

创建自己的模块

基本结构

# mymodule.py
def hello():
    print("Hello from mymodule!")

class MyClass:
    def __init__(self):
        self.name = "MyClass"

    def say_hello(self):
        print(f"Hello from {self.name}")

# 当模块被直接运行时执行
if __name__ == "__main__":
    hello()

使用自定义模块

# main.py
import mymodule

mymodule.hello()
obj = mymodule.MyClass()
obj.say_hello()

包(Package)

包是一种特殊的模块,它包含多个模块。包是一个包含 __init__.py 文件的目录。

包的结构示例

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

导入包中的模块

# 导入包中的模块
import mypackage.module1
from mypackage import module2
from mypackage.subpackage import module3

常用标准库模块

  1. os:操作系统接口
  2. sys:系统相关参数和函数
  3. math:数学函数
  4. datetime:日期和时间处理
  5. json:JSON 数据处理
  6. random:随机数生成
  7. collections:容器数据类型
  8. re:正则表达式

最佳实践

  1. 模块命名:使用小写字母和下划线
  2. 避免循环导入
  3. 使用相对导入:在包内部使用相对导入
  4. 编写文档字符串:为模块、函数和类添加文档
  5. 使用 __all__:明确指定可导出的名称
# 在模块中定义 __all__
__all__ = ['public_function', 'PublicClass']

模块缓存

Python 会缓存导入的模块,存储在 __pycache__ 目录中。这些 .pyc 文件可以加快模块的加载速度。

虚拟环境

使用虚拟环境可以隔离不同项目的依赖:

# 创建虚拟环境
python -m venv myenv

# 激活虚拟环境
# Windows
myenv\Scripts\activate
# Linux/Mac
source myenv/bin/activate

总结

Python 模块是代码组织和重用的重要机制。通过合理使用模块和包,可以:

  • 提高代码的可维护性
  • 促进代码重用
  • 避免命名冲突
  • 实现更好的代码组织

掌握模块的使用对于编写高质量的 Python 程序至关重要。

最近更新:: 2026/4/17 13:21
Contributors: Duke
Prev
Python类
Next
Python包