2010-01-24 2 views
6

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

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

Одна из действительно замечательных особенностей стандартной библиотеки Python заключается в том, что вы можете посмотреть на источник. Я действительно рекомендую заглянуть туда, чтобы посмотреть, как это делается. –

ответ

10

Посмотрите на 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 является спецификацией ic, что приводит к тому, что os.path будет ntpath на ваших платформах (несомненно, Windows).

7
>>> import os as my_aliased_module 
>>> my_aliased_module 
<module 'os' from 'C:\Program Files\Python 2.6\lib\os.pyc'> 

EDIT: А поскольку import простое утверждение в Python, вы можете сделать аккуратные вещи, как:

import sys 

if sys.platform == 'win32': 
    import windows_module as my_module 
else: 
    import unix_module as my_module 
Смежные вопросы