2

我试过这个:

import numpy as np
import numba

@numba.jit
class foo(object):
    @numba.void(numba.int32)
    def __init__(self, somenum):
        self.somenumarray = np.arange(somenum)

    @numba.jit('f8[:](f8[:])')
    def somemethod1(self, a):
        return self.somenumarray + a

使用@numba.double[:](numba.double[:])方法装饰器会导致错误。

4

1 回答 1

1

这可以使用numba.FunctionType来完成

将 numpy 导入为 np
进口麻木

bar = numba.FunctionType(return_type=numba.f8[:], args=[numba.f8[:]])

@numba.jit
类 foo(对象):
    @numba.FunctionType(return_type=numba.void, args=[numba.int32])
    def __init__(self, somenum):
        self.somenumarray = np.arange(somenum)

    @酒吧
    def somemethod1(self, a):
        返回 self.somenumarray + a

您可以稍后执行此操作:

quux = foo(3)
quux.somemethod1(np.arange(3))
于 2013-10-02T16:36:47.597 回答