Python 模块详解教程

liftword1个月前 (03-27)技术文章15

在 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)

  1. 新建一个 Python 文件,命名为 my_module.py

  2. 在文件中编写你所需的变量(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 会按照 以下顺序 搜索模块:

  1. 当前脚本所在目录 (script directory)
  2. PYTHONPATH 环境变量指定的路径
  3. 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)

  1. 命名冲突:尽量避免模块名与标准库或第三方库同名。
    (Avoid naming conflicts with standard libraries or popular third-party packages.)

  2. 使用别名:如果模块名太长,可使用 import xxx as yyy 来简化调用。

  3. 合理分层:将功能相近的模块放在同一个包中,便于管理和维护(management and maintenance.)。

  4. 模块内测试:在模块末尾写测试代码时,通常使用 if __name__ == "__main__": 判断,避免在被导入时自动执行。


总结
通过了解 模块(Module)包(Package) 的概念及使用方法,

可以大幅提升代码的复用性和维护性(significantly boosts code reusability and maintainability)

在实际开发中,你可以将通用函数、类等逻辑抽离到模块中,再通过包进行分层管理,既简化主脚本,也使项目结构更清晰!(the entire project becomes more coherent)

相关文章

Python 中的函数和模块

编写代码时,我们经常需要多次重用相同的逻辑。为了避免重复代码,我们可以使用函数。如果我们有多个属于一起的函数,我们可以将它们放在一个模块中。这有助于我们更好地组织代码,并使其更容易管理。 函数是一段执...

Python中的模块 (Module)和包 (Package)

Python的模块 (Module)和包 (Package)是Python程序中用于组织和封装代码的机制。模块是一个包含Python定义和语句的文件,也就是一个.py文件。包是一个包含多个模块的文件夹...

一分钟带你搞清楚Python模块、包、库

Python中的模块、包和库,很多新手小白经常搞混,别担心,看完这篇,保证你一分钟就能搞定!模块 (Module): 就好比是一块块乐高积木,每个模块包含特定的功能代码,比如实现加减乘除运算的模块。包...

python常用模块的导入和使用

Python中有很多常用的模块,我们可以通过导入这些模块来使用它们提供的功能。以下是一些常见模块的导入和使用的示例代码:math模块:提供了数学函数和常量。import math x = math....

17-1-Python-模块01

1-什么是模块模块是以.py结尾的一个Python代码文件,内含类、函数、变量等,我们可以导入进行使用。2-模块的作用Python中有很多各种不同的模块, 每一个模块都可以帮助我们快速的实现一些功能,...

脱颖而出的Python xlwings模块,一个更强大的操作Excel的模块

如下,在Python中存在很多支持Excel操作的第三方库,那么本文介绍的 xlwings 模块有其它模块有何区别呢?xrldxlwtopenpyxlxlswriterpandaswin32comxl...