-2

I would like to know which is the difference between
import httplib and
from httplib import *
By the way i am using python 2.73.

ND Andy
  • 7
  • 2
  • possible duplication of [Confirming the difference between import * and from xxx import *](http://stackoverflow.com/questions/4436401/confirming-the-difference-between-import-and-from-xxx-import) –  May 25 '13 at 00:17

2 Answers2

0

With import httplib, you would have to do

httplib.HTTPConnection(host)

With from httplib import *, you could do

HTTPConnection(host)

It is considered better to specify what you are importing in the second method, as in from httplib import HTTPConnection

SethMMorton
  • 45,752
  • 12
  • 65
  • 86
  • It's preference, but if you use the `from` method, it's best to specify what you are importing instead of using the `*` operator. – SethMMorton May 25 '13 at 00:21
0

Here's the different, by example:

>>> import httplib
>>> SEE_OTHER
NameError: name 'SEE_OTHER' is not defined
>>> httplib.SEE_OTHER
303

>>> from httplib import *
>>> SEE_OTHER
303
>>> httplib.SEE_OTHER
NameError: name 'httplib' is not defined

The from httplib import * is almost* never what you want, except possibly while experimenting with httplib in the interactive prompt.

Sometimes you want to import a few names out of a library—but in that case, specify the names explicitly:

from httplib import SEE_OTHER, MOVED_PERMANENTLY

Both import the module, but the former creates a single new name, httplib, in your current globals, while the latter instead copies all of the globals from httplib into your current globals.**


* "Almost" because there are a few good use cases even in scripts. For example, the idiomatic way to provide a Python implementation of a module with C accelerators is to end the Python script foo.py with from _foo import *.

** This isn't quite true, because of __all__ and various other details, but close enough for now.

abarnert
  • 354,177
  • 51
  • 601
  • 671