必备知识:from . import,“.” 代表使用相对路径导入,即从当前项目中寻找需要导入的包或函数
一、问题描述:
工作项目内的__init__文件初始化一个类Model,同一工作目录的 model_eg调用该函数,可以用:


使用方法2,执行model_eg.py时会报错:

(提示父模块没有加载,无法展示导入关系)
而使用第(1)种导入方法
导入时不存在这样的报错
二、下面用项目外的py文件导包使Model执行:
现在我在工作目录下新建一个py文件model_test(model_test与class_test平级),使用model_test调用model_eg.py,让函数model打印内容:
此时若在model_eg.py使用方法(2)导入函数,Model执行不会发生报错
可以正常打印
三、结论:
py文件若含有from . import 导包或导入函数的情况,无法在该文件下正常执行,而父模块被外部加载时可以正常被使用。
网友评论