我在项目中使用自定义日志记录模块。如果它不可用,我想用假人替换它而不是提出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()
我不认为这是一个优雅的解决方案。它确实有效,但它并不好。还有更好的方法吗?
答案 0 :(得分:6)
我会将虚拟实现放入一个名为dummy_loggger
的单独模块中,并写入:
try:
import logger
except ImportError:
import dummy_logger as logger
我以前使用JSON解析器完成了这项工作:
try:
import ujson as json # very fast but might not be available in some cases
except ImportError:
import json
答案 1 :(得分:0)
你可以很容易地使它更简洁:
try:
import logger
except ImportError:
print 'Couldn\'t load logger'
class logger(object):
@classmethod
def log(cls, image):
pass
请注意,即使在您当前的版本中,也应删除空的__init__
- 它不会添加任何值。