Pythonic方式来处理导入错误

Pas*_*ist 2 python import python-import

我在我的项目中使用自定义日志记录模块.如果它不可用,我想用假人代替它而不是提高ImportError.

这是当前执行此操作的代码:

try:
    import logger
except ImportError:
    print 'Couldn\'t load logger'

    class DummyLogger(object):
        def __init__(self):
            pass
        def log(self, image):
            pass

    logger = DummyLogger()
Run Code Online (Sandbox Code Playgroud)

我不认为这是一个优雅的解决方案.它确实有效,但它并不好.有没有更好的办法?

NPE*_*NPE 6

我会将虚拟实现放入一个单独的模块中,并调用dummy_loggger:

try:
    import logger
except ImportError:
    import dummy_logger as logger
Run Code Online (Sandbox Code Playgroud)

我以前用JSON解析器完成了这个:

try:
    import ujson as json  # very fast but might not be available in some cases
except ImportError:
    import json
Run Code Online (Sandbox Code Playgroud)