关于dir和python导入的问题

时间:2015-10-10 12:03:50

标签: python python-3.x python-import

我对Python的dir函数有一些疑问

>>>import urllib
>>>dir(urllib)
['__builtins__', '__cached__', '__doc__', '__file__','__loader__','__name__','__package__', '__path__', '__spec__']

当我喜欢这个时

>>>import urllib.request
>>>dir(urllib)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__','__package__', '__path__', '__spec__', 'error', 'parse', 'request', 'response']

为什么它还有三个属性? 为什么请求属性最初不在dir(urllib)中?

我'真的很高兴你的帮助!

1 个答案:

答案 0 :(得分:3)

urllib是一个包,而在urllib.request中,requesturllib包中的一个模块。

导入包时,它不会自动导入包内的模块,除非__init__.py为该包导入该模块。

__init__.py的{​​{1}}为空(在我的 Python 3.4 中为空),因此在导入urllib时它不会导入模块urllib