使用可选依赖的装饰器
Using decorators of optional dependency
假设我有以下代码:
try:
import bar
except ImportError:
bar = None
@bar.SomeProvidedDecorator
def foo():
pass
其中 bar 是一个可选的依赖项。如果未导入 bar,上面的代码将失败。
有没有推荐的方法来处理这个问题?
我想到了:
try:
import bar
except ImportError:
bar = None
def foo():
pass
if bar is not None:
foo = bar.SomeProvidedDecorator(foo)
但我想知道是否有更好的方法来处理这个问题(即是否有办法保留装饰器语法)?
在 bar
不可用的情况下提供身份装饰器:
try:
import bar
except ImportError:
class bar:
SomeProvidedDecorator = lambda f: f
假设我有以下代码:
try:
import bar
except ImportError:
bar = None
@bar.SomeProvidedDecorator
def foo():
pass
其中 bar 是一个可选的依赖项。如果未导入 bar,上面的代码将失败。 有没有推荐的方法来处理这个问题?
我想到了:
try:
import bar
except ImportError:
bar = None
def foo():
pass
if bar is not None:
foo = bar.SomeProvidedDecorator(foo)
但我想知道是否有更好的方法来处理这个问题(即是否有办法保留装饰器语法)?
在 bar
不可用的情况下提供身份装饰器:
try:
import bar
except ImportError:
class bar:
SomeProvidedDecorator = lambda f: f