如何处理不存在的装饰器

时间:2019-05-14 15:52:36

标签: python exception decorator

我想导入jit来加快代码速度,但是如何处理某些计算机上未安装numba的错误?在下面的代码中说:

from numba import jit

@jit
def some_function(x):
    ....#some more code

现在,即使不应用装饰器,some_function也可以正常运行,但速度稍慢一些。所以我可以尝试一下,除了:

try:
    from numba import jit
except:
   pass

但是我该如何处理这部分代码?

@jit <----- def some_function(x):     ....#更多代码

我可能可以做两个函数:

try:
    @jit <----
    def some_function(x):
    ...
except:
    def some_function(x):
    ...

即使这行得通,复制代码似乎也不好。那么,解决方案是什么?如果出现导入​​错误,如何使装饰器消失/不起作用?

1 个答案:

答案 0 :(得分:5)

您可以return本身function

try:
    from numba import jit
except ImportError as err:
    jit = lambda x: x # return the function itself