我对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)中?
我'真的很高兴你的帮助!
答案 0 :(得分:3)
urllib
是一个包,而在urllib.request
中,request
是urllib
包中的一个模块。
导入包时,它不会自动导入包内的模块,除非__init__.py
为该包导入该模块。
但__init__.py
的{{1}}为空(在我的 Python 3.4 中为空),因此在导入urllib
时它不会导入模块urllib
。