2016-03-19 2 views
4

Это утверждение из Python 3 Doc:Python: Имеет ли смысл импортировать подпакет?

Note that when using from package import item, the item can be either a submodule (or subpackage) of the package ...

Он говорит, что мы можем from package import subpackage.

Здесь я создаю пакет audio и два подпакета format и sound.

enter image description here

Тогда я импортировать его подпакет:

from audio import sound 

print(type(sound)) 

Выход на

class 'module'

Это показывает, что для from package import subpackage, Python intepreter всегда принимает деталь как module, не subpackage.

from audio import sound 

print(type(sound.echo)) 

Кроме того, поскольку sound принимается module, как получить доступ к его echo модуль?

он поднимет

AttributeError: module 'audio.sound' has no attribute 'echo'

Следовательно, интересно ли это смысл импортировать подпакет, или можно импортировать подпакет?

+2

Все пакеты и подпакеты являются модули. Subpackage не является типом python –

ответ

1

В Python существует только тип module, subpackage - это не тип.

Все пакеты и подпакеты являются модулями.

is it possible to import subpackage

Да? Вы уже импортировали sound как подпакет audio ...

is it meaningful to import sub-package

Кроме того, да. Как еще вы могли бы использовать классы и функции, определенные любым модулем?

Если вы хотите импортировать echo, то сделайте так, как этот

from audio.sound import echo