Importing * From a Package

P

Patrick Doyle

Reading through the Python tutorial, I got to section 6.4.1,
"Importing * From a Package", which states:

"If __all__ is not defined, the statement from Sound.Effects import *
does not import all submodules from the package Sound.Effects into the
current namespace; ..."

It then goes on to state:

"[It] imports whatever names are defined in the package [including]
any submodules of the package that were explicitly loaded by previous
import statements."

I am curious to learn the rationale for this behavior, since it just
caught me by surprise (hence the reason I was pouring over the
tutorial document in such detail :))

Thus far, everything in Python has seemed very intuitive to me,
however the behavior of "from package import *" baffles me.

So I figured I'd ask -- why does Python behave this way.

(And now, I'm going to do some code cleanup :))

--wpd
 
K

kyosohma

Reading through the Python tutorial, I got to section 6.4.1,
"Importing * From a Package", which states:

"If __all__ is not defined, the statement from Sound.Effects import *
does not import all submodules from the package Sound.Effects into the
current namespace; ..."

It then goes on to state:

"[It] imports whatever names are defined in the package [including]
any submodules of the package that were explicitly loaded by previous
import statements."

I am curious to learn the rationale for this behavior, since it just
caught me by surprise (hence the reason I was pouring over the
tutorial document in such detail :))

Thus far, everything in Python has seemed very intuitive to me,
however the behavior of "from package import *" baffles me.

So I figured I'd ask -- why does Python behave this way.

(And now, I'm going to do some code cleanup :))

--wpd

The only module I know of that most people tell you to do a "from x
import *" is Tkinter. I think that's pretty dumb myself. If you don't
want to type some module's name out, then do something like "import
Tkinter as tk".

Mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,023
Latest member
websitedesig25

Latest Threads

Top