首页 文章

Python:numba,构造函数如何将函数作为参数?

提问于
浏览
0

我想学习使用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)

以下是我得到的一些错误(我很抱歉没有保留缩进和换行符 . 我尝试了一些不同的东西,但在所有情况下,格式化都会丢失) . 我发帖是因为我在评论中被要求 . 但是我得到的那种错误因确切的实现而异:

Traceback(最近一次调用最后一次):文件“/home/marius/dev/python/inf1100/test_ODE.py”,第7行,来自DE import * File“/ 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'时的错误不是可接受的基类型

1 回答

  • 2

    听起来你应该使用new-style class代替 .

    @autojit
    class name(object):
    

相关问题