python学习-xx9-1模块与导入

张开发
2026/4/16 21:10:34 15 分钟阅读

分享文章

python学习-xx9-1模块与导入
1模块应用背景大型项目中多模块调用1、概念1、模块每个python文件都是一个独立的模块大模块中有小模块小模块中又有功能部分也会引入命名空间与作用域2、模块作用实际工作中整个项目代码比较多可以将相同功能代码放到一个文件中不同功能代码放 到不同文件中使代码易于维护2、导入方式语法①导入整个模块import 模块②导如指定的属性xxxfrom模块 import xxx③导入多个属性from 模块 import xxx,xxx④导入后起别名import 模块as别名from 模块 import xxx as 别名1xxx as 别名23、导入过程1.模块导入中会被加载加载过程中会被执行2.模块可以被导入多次但是只会加载1次【⭐】如何在导入过程中不执行代码有时候不希望导入过程中执行代码用__name__做判断4、导入搜索路径为什么导入的时候这个模块可以导入查找过程1.在当前目录下搜索该模块2.在环境变量 PYTHONPATH中指定的路径列表中依次搜索3.在Python 安装路径的 lib 库中搜索可以看到sys模块的路径是一个列表程序运行时需要导入指定模块可以将路径添加到sys.path中5、_name_变量__name__说明1.文件被执行__name__值为__main__2.文件被导入__name__值为模块名需求当文件被执行时执行测试代码当文件作为模块被导入不执行测试代码即判断该py中的__name__是什么如果是__main__就执行后续代码如果不是就不执行在python编译器中会自动给主函数一个这样的语法模板2包1、概念包是一个包含__init__.py文件的文件夹作用更好的管理源码2、相对导入与绝对导入①绝对导入一个模块只能导入自身的子模块或和它的顶层模块同级别的模块及其子模块形式import 模块from 模块 import 属性在main中导入topdir中的模块from的都是到.py文件的相当于给一个绝对路径只不过将/更改为.import的是.py文件中的模块函数等这是一种绝对导入所有都可以这样使用会将main函数的目录路径自动添加例如②相对导入在包内部进行导入from.模块 import xxxfrom..模块 import xxximport.模块#注意#.代表当前目录#..代表上一级目录#...代表上上级目录依次类推在topdir这个包中想要在leve_2.py中导入leve_3.py中的模块就需要采用相对导入导入的成功与否与执行路径相关在main中调用因为两者在同一模块下可以直接调用单独运行在topdir这个包中想要在leve_2.py中导入leve_4.py中的模块1、绝对导入2、相对导入在main中调用单独运行这样是不行的因为leve_2能定位到的最上级就是sub_dir_1查找不到sub_dir_2因为和执行路径有关应该__file__当前文件路径os.path.abspath(__file__)当前文件的绝对路径os.path.dirname(os.path.abspath(__file__))当前文件的上级目录建议使用这个os.path.abspath(.)执行脚本时的「当前工作目录」先找到topdir包的根目录然后加入系统路径中然后就可以用from sub_dir_2.level_4 import xxx了

更多文章