Python的import是模块化编程的核心工具,其用法可分为基础导入、代码组织及路径搜索三个关键部分:
一、基础导入语法- 直接导入包:import os,调用时需通过包名前缀(如os.path)。
- 导入特定函数/类:from math import pow,可直接使用pow()而无需前缀。
- 别名简化:import numpy as np,通过别名np调用。
- 导入常量并重命名:from math import pi as p,避免命名冲突。
- 通配符导入:from math import *(不推荐,易引发命名污染)。
二、代码组织方式- 单文件结构:变量、函数、类直接定义于.py文件中。
- 模块(Module):单个.py文件可作为模块被其他文件导入(如a.py导入b.py中的内容)。
- 包(Package):含__init__.py的文件夹,支持多级目录结构:
__init__.py作用:定义__all__变量控制from package import *的行为。
跨模块导入:包内模块需通过相对路径(如.c)导入,因__init__.py代表包本身而非同级目录。
- 字节码缓存:首次导入模块会生成__pycache__/.pyc文件,加速后续加载。
三、模块搜索路径解释器按sys.path列表顺序搜索模块,路径优先级如下:
- 当前目录:空字符串''表示脚本所在目录。
- 环境变量路径:如PYTHONPATH指定的目录。
- 标准库路径:Python安装目录下的库。
- 第三方库路径:通过pip安装的包路径。
注意:若当前目录存在与标准库同名的文件(如math.py),会优先导入本地文件而非标准库。
关键细节- 避免循环导入:模块A导入B,B又导入A会导致错误。
- 相对导入语法:在包内使用from . import module(需Python 3+)。
- 动态导入:importlib.import_module()可运行时动态加载模块。
通过合理使用import,可实现代码复用、结构化开发及大型项目协作。