The difference is a term called "namespace pollution". the "from socket import *" will place a whole lot of methods into your global namespace, possibly colliding with other methods / variables you've defined yourself. For example, if your file contained
x = 5 from foobar import * and foobar contained x = 6 then x would be 6. This is a potential side-effect that's pretty undesirable. If you did the other import style, then x would not get overwritten. The reason the 'from' syntax was designed was so you could only import certain methods into your global namespace, but you'd be aware of which you were importing. So in your example you'd want to do from socket import gethostbyname so you're sure you know what you're importing into your namespace and you can avoid polluting it. HTH, -Luke On Fri, Jan 8, 2010 at 1:21 PM, Rob Cherry <pythontu...@lxrb.com> wrote: > Still trying to get the hang of some python intricacies, but this one > has come up a few times. Beyond the obvious syntactic niceties what > is the difference between importing with and without the "from" > syntax? > > Its nice for example to do this - > > from socket import * > googleip = gethostbyname("www.google.com") > > vs > > import socket > googleip = socket.gethostbyname("www.google.com") > > Is there any difference between these concepts? Is there an easy > google search term for me to research the difference to death? > > Thanks in advance! > > Rob > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor