-2

我想知道
import httplib 和
from httplib import *之间的区别是什么
?顺便说一下,我使用的是 python 2.73。

4

2 回答 2

0

这是不同的,例如:

>>> 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

from httplib import *几乎*永远不是您想要的,除非可能在httplib交互式提示中进行试验。

有时您想从库中导入一些名称——但在这种情况下,请明确指定名称:

from httplib import SEE_OTHER, MOVED_PERMANENTLY

两者都导入模块,但前者在您当前的全局变量中创建一个新名称 ,httplib而后者将所有全局变量从httplib您当前的全局变量中复制。**


* “几乎”,因为即使在脚本中也有一些很好的用例。例如,使用 C 加速器提供模块的 Python 实现的惯用方法是foo.py使用from _foo import *.

** 这并不完全正确,因为__all__还有其他各种细节,但现在已经足够接近了。

于 2013-05-25T00:21:05.980 回答
0

import httplib你必须做

httplib.HTTPConnection(host)

from httplib import *你可以做

HTTPConnection(host)

最好在第二种方法中指定要导入的内容,如from httplib import HTTPConnection

于 2013-05-25T00:17:38.543 回答