我可以在0.6 numba文档中找到有关如何使用numba on classes的一些信息:
from numba import jit, void, int_, double
# All methods must be given signatures
@jit
class Shrubbery(object):
@void(int_, int_)
def __init__(self, w, h):
# All instance attributes must be defined in the initializer
self.width = w
self.height = h
# Types can be explicitly specified through casts
self.some_attr = double(1.0)
@int_()
def area(self):
return self.width * self.height
@void()
def describe(self):
print("This shrubbery is ", self.width,
"by", self.height, "cubits.")
但我没有在0.16 documentation中找到。是否总是可以在课堂上使用numba?
答案 0 :(得分:5)
从版本0.23开始,有numba.jitclass
方法。我可以说以下版本在0.26版本中工作
@numba.jitclass([('width', numba.float64), ('height', numba.float64)])
class Shrubbery(object):
def __init__(self, w, h):
self.width = w
self.height = h
def area(self):
return self.width * self.height
shrubbery = Shrubbery(10, 20)
print(shrubbery.area())
documentation表示只允许使用方法和属性,因此很遗憾,包括describe
函数在内不会起作用。
答案 1 :(得分:3)
我听说 numba
班级支持的最后一件事就是他们temporarily removed it since 0.12