Python os.path - это ntpath, как? - PullRequest
7 голосов
/ 24 января 2010

Может кто-нибудь сказать мне, как Python "псевдонимы" os.path до ntpath?

>>> import os.path
>>> os.path
<module 'ntpath' from 'C:\Python26\lib\ntpath.pyc'>
>>>

Ответы [ 2 ]

11 голосов
/ 24 января 2010

Посмотрите на os.py , строки 55-67:

elif 'nt' in _names:
    name = 'nt'
    linesep = '\r\n'
    from nt import *
    try:
        from nt import _exit
    except ImportError:
        pass
    import ntpath as path

    import nt
    __all__.extend(_get_exports_list(nt))
    del nt

import ntpath as path - это конкретное утверждение, которое заставляет os.path быть ntpath на ваших платформах (без сомнения, Windows).

7 голосов
/ 24 января 2010
>>> import os as my_aliased_module
>>> my_aliased_module
<module 'os' from 'C:\Program Files\Python 2.6\lib\os.pyc'>

РЕДАКТИРОВАТЬ: И поскольку import - это простое утверждение в Python, вы можете делать такие аккуратные вещи, как:

import sys

if sys.platform == 'win32':
  import windows_module as my_module
else:
  import unix_module as my_module
...