从X导入Y的多行导入为Z.

aes*_*vex 3 python import

有没有办法from X import Y as Z在多行导入中使用成语?

具体来说,我想写类似的东西from some.very.long.package.name import LongName as OtherLongName.整件事不适合一行.

所以我试着用括号来编写它来交叉线,但我发现as关键字有一些奇怪的行为.特别:

#this is just fine
from os import (
  path)

#this is a syntax error
from os import (
  path) as os_path
Run Code Online (Sandbox Code Playgroud)

因此,我想出去做我想要的唯一方法是:

from some.very.long.package.name import (
  LongName)
OtherLongName = LongName
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个声明中做到这一点?

vau*_*tah 5

在要停止的位置添加斜杠:

from some.very.long.package.name import \
                 LongName as OtherLongName
Run Code Online (Sandbox Code Playgroud)

没有它,Python会认为线路已经结束并抛出SyntaxError.

importlib.import_module如果您更方便地在字符串上找到操作,也可以使用它们:

from importlib import import_module
OtherLongName = import_module('some.very.long.package.name.LongName')
Run Code Online (Sandbox Code Playgroud)