python - 如何处理不存在的装饰器
问题描述
我想导入 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):
...
即使这样可行,复制代码似乎也不好。那么,解决这个问题的方法是什么?如果出现导入错误,如何使装饰器消失/不起作用?
解决方案
你可以像return
它function
本身一样,
try:
from numba import jit
except ImportError as err:
jit = lambda x: x # return the function itself
推荐阅读
- java - 航空公司预订系统 UML 问题 - 这些方法属于哪里?
- azure - 从 .NET Core Web App 中的 Azure AD 撤消访问权限或刷新组和角色
- reactjs - 在 monorepo 中对资产进行重复数据删除
- apache-spark - 在火花数据框中的每一行的地图类型列中按键排序
- git - 签出之前的提交后如何返回到最新的提交?(当分支名称未知时。)
- docker - Docker Swarm:如何更新已发布的帖子
- python - Python解析字符串环境变量
- typescript - 带有静态方法的打字稿通用类构造函数参数
- google-sheets - 为什么数组公式不适用于整列?
- postman - 请求url中的邮递员路径参数=