How can I import multiple items from a module and rename them in Python?
You have to use the as
for each item:
from math import atan as t, degree as z
This imports and renames them all.
The Python Reference Manual does, in fact, cover this. It says, in its description for the import
statement:
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" "*"
Now, this notation is a little confusing at first glance, but as spend time with programming languages you will become more familiar with it. It is commonly refered to as "BNF" (which stands for Backus-Naur Form). Most programming language references will use some version of it.
From the sample above, we see the following symbols that could do with some explanation:
- Vertical bar or Pipe character (
|
) -- this is used to separate alternatives - The asterisk / star character (
*
) -- this means that the preceding (usually enclosed statement) is repeated zero or more times - Square brackets (
[
and]
) -- these indicate that the enclosed portion which occurs is optional, so included zero or one times. - Parenthesis (
(
and)
) -- these are used to group statements for the asterisk to take affect on
Cutting down the reference above to what you seem interested in, we have:
"from" relative_module "import" identifier ["as" name]
( "," identifier ["as" name] )*
TL;DR Which, for your example given, leads to the legal statement being
from math import atan as t, degree as z