我想学习使用numba。不幸的是,我发现从文档中学习 numba 有点困难。所以我得试着问问你们。我想将函数f
作为参数传递给构造函数。但是我尝试,我得到各种各样的错误。我应该怎么办?
这是我的代码:
def f(x):
# return some mathematical expression
f_numba = jit(double(double))(f)
@autojit
class name:
def __init__(self, f)
self.f = f
@double(double)
def __call__(self, x)
return self.f(x)
funct = name(f_numba)
a = funct(5)
这是我遇到的一些错误(很抱歉没有保留缩进和换行符。我尝试了一些不同的方法,但在所有情况下格式都丢失了)。我发布这个是因为我被要求在评论中。但是我得到的错误类型因具体实现而异:
回溯(最后一次调用):文件“/home/marius/dev/python/inf1100/test_ODE.py”,第 7 行,从 DE 导入 * 文件“/home/marius/dev/python/inf1100/DE.py ",第 3 行,在 @autojit 文件中 "/home/marius/anaconda/lib/python2.7/site-packages/numba/decorators.py",第 183 行,在 autojit nopython=nopython,locals=locals,**kwargs )(func) 文件“/home/marius/anaconda/lib/python2.7/site-packages/numba/decorators.py”,第 165 行,在 _autojit_decorator numba_func = wrapper(f, compilerimpl, cache) 文件“/home/ marius/anaconda/lib/python2.7/site-packages/numba/exttypes/autojitclass.py”,第 360 行,在 autojit_class_wrapper py_class = autojitmeta.create_unspecialized_cls(py_class, class_specializer) 文件“/home/marius/anaconda/lib/python2 .7/site-packages/numba/exttypes/autojitmeta.py",第 22 行,在 create_unspecialized_cls 类 AutojitMeta(type(py_class)) 中:TypeError:调用元类基类时出错,类型“classobj”不是可接受的基类型