一种使用通用名称空间前缀导入多个模块的简洁方法

2024-05-13 08:39:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我经常发现自己从只在名称空间的最后一部分不同的模块中导入类,例如:

from a.b.c.d import Class1
from a.b.c.e import Class2
from a.b.c.f import Class3

有什么方法可以让我只键入一次公共部分吗?你知道吗

我知道如果它们都有完全相同的名称空间

from a.b.c import Class1
from a.b.c import Class2
from a.b.c import Class3

然后我就可以打字了

from a.b.c import (Class1, Class2, Class3)

所以在我的第一个例子中,我尝试了

from a.b.c import (d.Class1 as Class1, 
                   e.Class2 as Class2, 
                   f.Class3 as Class3)

。。。但那没用。你知道吗

任何提示都将不胜感激。你知道吗


Tags: 模块方法fromimport名称键入as空间
2条回答

不,没有语法可以将嵌套项作为那样的本地名称导入。你知道吗

您可以导入不同的模块,然后分配给本地名称:

from a.b.c import d, e, f
Class1, Class2, Class3 = d.Class1, e.Class2, f.Class3
del d, e, f

但这既不可读也不简洁。你知道吗

如果a是您自己的包之一(或者如果您愿意并愿意维护fork…),您可以使用a.b.c包作为外观:

# a/b/c/__init__.py
from d import Class1
from e import Class2
from f import Class3

然后:

# client code:
from a.b.c import Class1, Class2, Class3

会有用的。你知道吗

相关问题 更多 >