Skip to content

python 模块化管理python

如何管理模块

理解模块和包
  • 模块 (Module): 一个 .py 文件就是一个模块,包含可执行的 Python 代码。
  • 包 (Package): 一个包含多个模块的文件夹,文件夹中必须包含一个 __init__.py 文件,用来标识这是一个包。
模块导入方式
python
import module_name

from module_name import function_name, variable_name

from module_name import *  # 不推荐,可能导致命名空间冲突
包导入方式
导入方式说明举例
直接导入整个包导入整个包,使用时需要通过包名.模块名.函数名的方式来访问包中的模块和函数。import math
从包中导入指定模块导入包中的指定模块,使用时可以直接使用模块中的函数或变量。from math import sqrt
从模块中导入指定函数或变量导入包中指定模块的指定函数或变量,使用时可以直接使用函数或变量名。from math import sqrt, pi
使用 as 给模块或函数起别名可以给导入的模块或函数起一个别名,方便使用。import math as m

函数导入执行流程

  1. 查找模块:
    • Python 会按照特定的搜索路径来查找要导入的模块

    • 搜索路径通常包括:

      • 当前脚本所在的目录
      • 环境变量 PYTHONPATH 指定的目录
      • Python 安装目录下的标准库目录
      • 第三方库安装目录
    • Python 会根据你提供的模块名,在这些路径中逐一查找对应的 .py 文件。

  2. 加载模块:
    • 编译: 如果找到了对应的模块文件,Python 会将其编译成字节码(bytecode),这是一种中间语言,可以被 Python 虚拟机直接执行,从而提高执行效率。
    • 执行: Python 会执行模块中的代码,包括变量的定义、函数的定义等。在这个过程中,模块中的所有定义都会被加载到内存中。
  3. 创建命名空间:
    • 隔离模块: 每个模块都有自己的命名空间,这样可以避免不同模块中的同名变量或函数发生冲突。
    • 导入到当前命名空间: 当你成功导入一个模块后,它的名字就会被添加到当前模块的命名空间中。这样,你就可以通过点号(.)来访问该模块中的属性(包括函数、变量、类等)。
  4. 使用导入的函数:
    • 通过点号访问: 你可以通过点号(.)来访问导入模块中的函数、类或变量。

    • 示例:

      python
      import math
      
      result = math.sqrt(16)
      print(result)  # 输出 4.0