关于同一级文件导入的问题
来源:2-3 模块的导入
Alicias
2021-01-29 00:21:04
老师您好,课程里在__init__.py中导入同一级的cat包时前面加了 .号
在test1.py中同样是导入同一级的animal包时前面却没有加 .号
请问是为什么呢?感谢
1回答
好帮手慕燕燕
2021-01-29
同学,你好!对同学的疑问做如下解答:
1、在包的__init__.py文件中,导入其他的包或者模块,必须指明导入的包的父级包名,如果不指定,python解释器将报错ImportError: attempted relative import with no known parent package,这是__init__.py文件不同其他python文件的地方。.号就是当前目录,也就是animal。
2、如同学所说,test1.py是和animal同级的,导入的时候直接from animal即可找到,加了.号就表示从父级包中导入animal,animal上层没有包了,因此加了.号也会报错ImportError: attempted relative import with no known parent package。
祝:学习愉快!
相似问题