Python 3.2.3 (default, Apr 12 2012, 21:55:50) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import urllib >>> dir(urllib) ['__builtins__', '__cached__', '__doc__', '__file__', '__name__', '__package__', '__path__'] >>> from urllib import request >>> dir(urllib) ['__builtins__', '__cached__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'error', 'parse', 'request', 'response'] >>>
Если моя мысль еще не ясна, изображу контрпример, в котором работа import мне понятна
Python 3.2.3 (default, Apr 12 2012, 21:55:50) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import math >>> dir(math) ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'] >>> from math import sqrt >>> dir() ['__builtins__', '__doc__', '__name__', '__package__', 'math', 'sqrt'] >>>
Так вот, подытожу вопросы:
1) где в модуле urllib скрываются request, response, parse и error?
2) где скрывается сам urllib.py? (locate urllib.py выдает, кроме прочего неважного, /usr/lib/python3.2/lib2to3/fixes/fix_urllib.py, что не подходит)
3) почему при from urllib import request в сам urllib добавляются еще parse, error и response? почему об этом побочном эффекте ничего нет в __init__.py? (хотя что-то мне подсказывает, что __init__.py за это не в ответе. Тогда что отвечает за такое поведение?)
Всем, кто дочитал и осознал, чего я хочу, спасибо и на этом. Google не помог, потому что адекватный поисковый запрос я сформулировать не смог, хоть и пытался.
P.S. здесь давно не был, но то, что авторизация на форуме теперь привязана в том числе и к Google, позволило даже не вспоминать логин/пароль. Это классно, спасибо!