Python 模块详解教程
在 Python 中,模块(Module) 是组织和复用(reuse code)代码的重要方式(a vital way)。
通过将相关功能封装(package)到单独的文件(separate files)中,我们可以让代码结构更清晰、更易维护(keep our codebase clean and maintainable)。
1. 模块是什么?
一个 Python 模块就是一个包含了变量、函数、类等(variables, functions, classes, etc.)可执行代码的文件,
通常以 .py 结尾(a file ending with .py)
当我们在其他脚本(script)中 导入该文件时,就能使用里面的内容(access its contents)。
示例:假设有一个名为 my_module.py 的文件,包含以下代码:
# my_module.py
def greet(name):
return f"你好, {name}!" # (Hello, {name}!)
PI = 3.14159
2. 如何创建并使用模块
2.1 创建模块 (Creating a Module)
- 新建一个 Python 文件,命名为 my_module.py
- 在文件中编写你所需的变量(variables you need)、函数或类。
2.2 导入模块
在另一个脚本(例如 main.py)中使用 import 或 from ... import 语句来导入模块。
示例:
# main.py
import my_module # 导入整个模块 (import the entire module)
print(my_module.greet("小明")) # 调用模块内函数 (call a function from the module)
print(my_module.PI)
输出:
你好, 小明!
3.14159
示例:
# main.py
from my_module import greet, PI # 从模块中导入指定内容 (import specific items)
print(greet("小红"))
print(PI)
3. 模块搜索路径与包 (Module Search Path & Packages)
3.1 模块搜索路径 (Module Search Path)
当我们导入模块时,Python 会按照 以下顺序 搜索模块:
- 当前脚本所在目录 (script directory)
- PYTHONPATH 环境变量指定的路径
- Python 安装目录及其 site-packages
3.2 包
一个 包(Package) 是包含 __init__.py 文件的文件夹(a folder containing...),用于将多个相关模块组织在一起(group related modules together)。
示例:
以下是电脑磁盘内的文件夹:
my_package/
__init__.py
module_a.py
module_b.py
导入方式:
import my_package.module_a
from my_package import module_b
4. 常见的内置与第三方模块 (Common Built-in & Third-Party Modules)
- 内置模块 :如 math, os, random, datetime 等,无需安装即可使用(without extra installation.)
- 第三方模块:如 requests, numpy, pandas 等,需要通过 pip 安装(install via pip)。
示例:安装并导入第三方模块 requests
在电脑的终端中输入(小黑窗口):
pip install requests
import requests
response = requests.get("https://www.example.com")
print(response.status_code)
5. 小贴士与注意事项 (Tips & Caveats)
- 命名冲突:尽量避免模块名与标准库或第三方库同名。
(Avoid naming conflicts with standard libraries or popular third-party packages.) - 使用别名:如果模块名太长,可使用 import xxx as yyy 来简化调用。
- 合理分层:将功能相近的模块放在同一个包中,便于管理和维护(management and maintenance.)。
- 模块内测试:在模块末尾写测试代码时,通常使用 if __name__ == "__main__": 判断,避免在被导入时自动执行。
★ 总结
通过了解 模块(Module) 与 包(Package) 的概念及使用方法,
可以大幅提升代码的复用性和维护性(significantly boosts code reusability and maintainability)
在实际开发中,你可以将通用函数、类等逻辑抽离到模块中,再通过包进行分层管理,既简化主脚本,也使项目结构更清晰!(the entire project becomes more coherent)