我想从atan
导入degree
和math
并重命名。
我尝试过使用它:
from math import atan,degree as t,z
但是这给了ImportError: cannot import name 'z'
。
我进行了多次Google搜索"导入多个模块并重命名",但都没有结果。 Python手册没有帮助 - 关于导入的页面并没有解释这个(据我所知)。
如何从模块导入多个项目并重命名?
答案 0 :(得分:22)
您必须为每个项目使用as
:
from math import atan as t, degree as z
这会将它们全部导入并重命名。
答案 1 :(得分:7)
事实上,Python Reference Manual确实涵盖了这一点。它在import
声明的描述中说:
import_stmt ::= "import" module ["as" name] ( "," module ["as" name] )*
| "from" relative_module "import" identifier ["as" name]
( "," identifier ["as" name] )*
| "from" relative_module "import" "(" identifier ["as" name]
( "," identifier ["as" name] )* [","] ")"
| "from" module "import" "*"
现在,这种符号乍一看有点令人困惑,但随着花在编程语言上的时间,你会更熟悉它。它通常被称为“BNF”(代表 Backus-Naur Form )。大多数编程语言参考都会使用它的某些版本。
从上面的示例中,我们看到了以下可以解释的符号:
|
) - 用于分隔备选方案 *
) - 这意味着前面(通常包含的语句)重复零次或多次 [
和]
) - 这些表示发生的封闭部分是可选的,因此包含零次或一次。(
和)
) - 这些用于对星号的语句进行分组以对生效 将上面的参考文献减少到您感兴趣的内容,我们有:
"from" relative_module "import" identifier ["as" name]
( "," identifier ["as" name] )*
TL; DR 根据您的示例,这会导致法律声明
from math import atan as t, degree as z