Python: как импортировать часть пространства имен - PullRequest
3 голосов
/ 04 августа 2009

У меня есть такая структура:

import a.b.c
a.b.c.foo()

и это тоже работает:

from a.b import c
c.foo()

но это не работает:

from a import b.c
b.c.foo()

и не делает:

from a import b
b.c.foo()

Как я могу сделать импорт, чтобы b.c.foo() работал?

Ответы [ 4 ]

9 голосов
/ 04 августа 2009

Просто переименуйте его:


from a.b import c as BAR

BAR.foo()
2 голосов
/ 04 августа 2009
from a import b
from a.b import c
b.c = c
2 голосов
/ 04 августа 2009

В вашем пакете 'b' необходимо добавить 'import c', чтобы он всегда был доступен как часть b.

0 голосов
/ 04 августа 2009
import a.b.c
from a import b
b.c.foo()

Порядок операторов импорта не имеет значения.

...