关于同一级文件导入的问题

来源:2-3 模块的导入

Alicias

2021-01-29 00:21:04

老师您好,课程里在__init__.py中导入同一级的cat包时前面加了 .号

http://img.mukewang.com/climg/6012e3b80811dca706690121.jpg


​在test1.py中同样是导入同一级的animal包时前面却没有加 .号

http://img.mukewang.com/climg/6012e3ef0822d62c07700092.jpg


请问是为什么呢?感谢

写回答

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。

祝:学习愉快!

1
hlicias
hp>明白了,谢谢老师!

h021-02-01
共1条回复

0 学习 · 2433 问题

查看课程