[Tutor] Importing Modules

Kent Johnson kent37 at tds.net
Tue Apr 25 12:31:31 CEST 2006

John Connors wrote:
> G'day,
> I'm having trouble understanding the difference between,
> import sys
> and
> from sys import *

The second style is strongly discouraged. As Alan pointed out, it can 
lead to surprises when you import more than you expect. I was once 
surprised to find out that when I write something like

foo = 1
bar = 2

from a import *

from b import *

Now foo and bar are defined in module c!!

The other reason to avoid this style is it removes clues about where a 
name is defined. If in module c above you want to know where foo comes 
from, it would be hard to find out. On the other hand if I wrote

from a import foo

then a search within c would show me where foo is defined.


More information about the Tutor mailing list