Python 模块和包:组织代码项目

了解 Python 模块和包。了解如何导入文件、构建大型项目、利用标准库以及使用绝对导入和相对导入。

在编辑器中尝试

概述

随着应用程序的增长,将所有代码保存在单个文件中变得无法管理、读取和调试。 Python 通过将代码组织到模块和包中来解决这个问题。模块只是一个包含变量、函数、类和可执行语句的 Python 文件(以“.py”结尾)。通过将代码拆分为逻辑模块,您可以创建一个干净的、可重用的代码库,该代码库易于测试并在不同的应用程序之间共享。

要在另一个模块中使用一个模块中的代码,Python 使用“import”关键字。您可以导入整个模块(例如“import math”)、导入特定属性(例如“from math import pi, sqrt”)或使用别名导入模块以保持代码简洁(例如“import pandas as pd”)。 Python 的导入系统在解析导入之前搜索特定的路径列表,从当前目录开始,然后是安装目录和标准库。

包是以目录结构组织的模块的集合。要将目录定义为包,传统上它包含一个名为“__init.py”的文件(尽管这对于Python 3.3+ 中的命名空间包是可选的)。此结构允许您将相关模块分组到单个命名空间下。例如,名为“database”的包可能包含模块“connection.py”和“queries.py”。您可以使用点符号导入它们的内容:“import database.connection”。掌握模块和包是构建可扩展、可用于生产的 Python 应用程序的关键。

代码和执行输出

使用 Python 的导入系统访问数学函数并使用自定义别名。

import_demo.py
在编辑器中尝试
import math
from math import sqrt as square_root

# Calculate mathematical constants and values
val = 16
result = square_root(val)
pi_value = math.pi

print(f"Square root of {val} is {result}")
print(f"Value of Pi: {pi_value:.4f}")
print(f"Cosine of 0 is {math.cos(0)}")
端子输出
Square root of 16 is 4.0
Value of Pi: 3.1416
Cosine of 0 is 1.0

逐步实施

  • 将业务逻辑与路由处理程序分开
  • 跨应用程序使用标准库实用程序
  • 将代码发布为可重用的开源库

常见问题解答

__init.py的目的是什么?

它将目录初始化为 Python 包。它还可用于在包级别公开特定的子模块或变量,以便于导入。

如何安装外部模块?

您可以通过命令行(例如 pip install requests)使用 Python 的包管理器 pip,它从 PyPI 下载并安装包。

相关主题

推荐的 Python 资源

通过相关的交互式教程、备忘单和代码比较来扩展您的知识。