模块是单个.py文件,包是含__init__.py的目录;import先查sys.modules缓存,再按sys.path搜索、编译执行并绑定命名空间;推荐import module,from需注意覆盖和显式导入,相对导入限包内;__all__控制*导入,__name__=='__main__'区分运行方式,importlib支持动态导入。

模块是单个 .py 文件,比如 math.py 或 utils.py,它封装了一组函数、类或变量;包则是一个包含 __init__.py(可以为空)的目录,用于组织多个模块,支持层级结构,比如 myproject/db/connection.py 属于包 myproject.db。
当执行 import xxx 时,Python 会按以下顺序查找:
import module:最安全,命名空间隔离明确,推荐用于避免名称冲突
from module import name:把指定对象引入当前作用域,注意可能覆盖同名变量
立即学习“Python免费学习笔记(深入)”;
from package import submodule:要求包的 __init__.py 中显式导入该子模块,否则报错
相对导入(from . import xxx):仅限包内使用,必须在模块作为包的一部分被导入时才有效(不能直接运行 .py 文件)
__all__ = ['func_a', 'ClassB'] 在模块中声明,限制 from module import * 导入的内容
if __name__ == '__main__': 区分模块被导入 vs 直接执行,常用于测试代码
动态导入可用 importlib.import_module('package.module'),适合插件系统或配置驱动场景
修改 sys.path 可临时扩展搜索路径,但生产环境建议用安装方式(pip install -e .)管理依赖
以上就是Python模块与包如何管理_import机制解析【教学】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号