简单的Python导入

时间:2012-08-10 17:46:31

标签: python import

我有一个简单的Python导入问题。我有一个模块(我们称之为 A 正在导入模块 B 。模块B导入了许多其他模块C,D,E,F等。我希望模块A能够使用模块C,D,E,F等。是否有一种简单的方法可以做到这一点?我不想直接从A中导入C,D,E,F等。

我想要完成的是为编写模块A的脚本开发人员提供API。因此,我希望模块A只需要包含模块B,模块B是API的主要入口点并导入所有API中的模块。

3 个答案:

答案 0 :(得分:2)

你可以......

from B import *

...在模块A内部(虽然您需要确保模块B中没有其他任何内容与模块A内的任何内容具有相同的名称,否则您将发生命名空间冲突)。

一旦你这样做,你就可以......

C.blah()
D.testing.meh()

......在模块A内,像往常一样。

或者,更好的解决方案是在模块A中执行以下操作:

import B

B.C.blah()
B.D.testing.meh()

答案 1 :(得分:0)

您可以在B中使用from ... import *。之后,C,D中的所有定义都将在B名称空间中可用。但是这个解决方案并不总是方便大量的代码,这会导致混淆。

a.py:

import b
b.foo()

b.py:

from c import *
from d import *

c.py:

def foo():
    pass

答案 2 :(得分:0)

您可以在A和B文件中使用from ... import *。 在此之后,可以使用B或C或D中的所有定义而不会产生混淆。

A.py:

from B import *
fun_c()

B.py:

from C import *

C.py:

def fun_c():
    pass