缩短深度导入/长命名空间
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
结构
Class1
和 Class2
是模块 AnotherOne
的属性,因此您可以将它们分配给这样的变量:
from LongNamespace.EvenLongerNamespace import AnotherOne
Class1 = AnotherOne.Class1
Class2 = AnotherOne.Class2
您也可以在一条语句中导入多个名称:
from LongNamespace.EvenLongerNamespace.AnotherOne import Class1, Class2
我正在处理一个带有长命名空间的包,我想知道是否有任何方法可以缩短它。 例如,一些导入看起来像
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
结构
Class1
和 Class2
是模块 AnotherOne
的属性,因此您可以将它们分配给这样的变量:
from LongNamespace.EvenLongerNamespace import AnotherOne
Class1 = AnotherOne.Class1
Class2 = AnotherOne.Class2
您也可以在一条语句中导入多个名称:
from LongNamespace.EvenLongerNamespace.AnotherOne import Class1, Class2