此声明来自Python 3 Doc:
请注意,在使用包导入项时,该项可以是包的子模块(或子包)...
它说我们可以from package import subpackage
。
在这里,我创建了一个包audio
,以及两个子包format
和sound
。
然后我导入它的子包:
from audio import sound
print(type(sound))
输出
class'module'
它表明对于from package import subpackage
,Python解释器始终将项目视为module
,而不是subpackage
。
from audio import sound
print(type(sound.echo))
此外,由于sound
被视为module
,如何访问其echo
模块?
它会提升
AttributeError:模块'audio.sound'没有属性'echo'
因此,我想知道导入子包是否有意义,还是可以导入子包?
答案 0 :(得分:1)
Python中只有module
类型,subpackage
不是类型。
所有包和子包都是模块。
是否可以导入子包
是?您已导入sound
作为audio
...
导入子包
是否有意义
另外,是的。您还将如何使用任何模块定义的类和函数?
如果您想导入echo
,请按照
from audio.sound import echo