Python:导入子包是否有意义?

4
这个语句来自Python 3 Doc
请注意,使用from package import item时,item可以是包的子模块(或子包)...
它说我们可以使用from package import subpackage
在这里,我创建了一个名为audio的包,以及两个子包formatsound

enter image description here

然后我导入它的子包:
from audio import sound

print(type(sound))

输出结果为:

类 'module'

这表明对于 from package import subpackage,Python 解释器总是将项目作为 module 而不是 subpackage。请注意保留 HTML 标签。
from audio import sound

print(type(sound.echo))

此外,由于将sound作为module,如何访问其echo模块?
它将引发
AttributeError:模块'audio.sound'没有属性'echo'
因此,我想知道导入子包是否有意义,或者能否导入子包?

2
所有的包和子包都是模块。子包不是Python类型。 - OneCricketeer
1个回答

1

Python中只有module类型,subpackage不是一种类型。

所有的包和子包都是模块。

是否可以导入子包?

可以。您已经将sound作为audio的子包导入了...

导入子包有意义吗?

当然有意义。否则,您如何使用任何模块定义的类和函数呢?

如果您想要导入echo,那么可以这样做:

from audio.sound import echo 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接