缩短深度导入/长命名空间

Shortening deep imports / long namespaces

我正在处理一个带有长命名空间的包,我想知道是否有任何方法可以缩短它。 例如,一些导入看起来像

from LongNamespace.EvenLongerNamespace.AnotherOne.Class1 import Class1
from LongNamespace.EvenLongerNamespace.AnotherOne.Class2 import Class2
etc.

我希望能起作用的是

Short = LongNamespace.EvenLongerNamespace.AnotherOne
from Short.Class1 import Class1
from Short.Class2 import Class2
etc.

但不幸的是,这不起作用。 我知道你可以做到

t = import LongNamespace.EvenLongerNamespace.AnotherOne
t.Class1 

但这并不干净,我宁愿保留 from x import y 结构

Class1Class2 是模块 AnotherOne 的属性,因此您可以将它们分配给这样的变量:

from LongNamespace.EvenLongerNamespace import AnotherOne
Class1 = AnotherOne.Class1
Class2 = AnotherOne.Class2

您也可以在一条语句中导入多个名称:

from LongNamespace.EvenLongerNamespace.AnotherOne import Class1, Class2