On Wed, Oct 16, 2013 at 01:26:11PM -0300, Facundo Batista <facundobatista at gmail.com> wrote: > (all this using Python 3.4.0a3+) > > In the stdlib, I see that (as an example): > > >>> import os > >>> os.path.abspath > <function abspath at 0xb7123734> > >>> os.path > <module 'posixpath' from '/.../python/trunk/Lib/posixpath.py'> > > > However, for other (newer) modules: > > >>> import urllib > >>> urllib.requests.urlopen > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > AttributeError: 'module' object has no attribute 'requests' > >>> import concurrent > >>> concurrent.futures > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > AttributeError: 'module' object has no attribute 'futures' > > > So, is there a reason to not expose the submodules in the top module? > This should be fixed? I don't think it should be fixed. To expose submodules automatically top-level modules have to import them. In case one only needs a couple of submodules (and without lazy import) importing all of them would be a waste of time and memory. Module os.path is a special kind of module. On import os imports a platform-dependent module (posixpath, ntpath) and exposes it as os.path. Oleg. -- Oleg Broytman http://phdru.name/ phd at phdru.name Programmers don't die, they just GOSUB without RETURN.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4