29

I want to import atan and degree from math and rename them both.

I have tried using this:

from math import atan,degree as t,z

But that gives ImportError: cannot import name 'z'.

I did a number of Google searches for "import multiple modules and rename", but all were fruitless. The Python manual hasn't helped - the page on imports doesn't explain this (as far as I can tell).

How can I import multiple items from a module, and rename them?

1

2 Answers 2

55

You have to use the as for each item:

from math import atan as t, degree as z

This imports and renames them all.

Sign up to request clarification or add additional context in comments.

Comments

11

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.