如何在 Numba 中使用 Python Class

How to use Python Class with Numba

我有 Numba 0.24,它支持 classes。

当我尝试构建最简单的 class 时,我可以想象我发现了一个错误!发生什么事了?

from numba import jitclass
@jitclass
class foo:
    x = 2
bar = foo()

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-3e0fd8d4bd2b> in <module>()
      3 class foo:
      4     x = 2
----> 5 bar = foo()

TypeError: wrap() missing 1 required positional argument: 'cls'

我是不是漏掉了什么?

您需要指定规格:

spec = [('x', nb.int64)]
@nb.jitclass(spec)
class foo(object):
    def __init__(self):
        self.x = 2

bar = foo()
print bar.x

看看docs。目前不支持 class 变量。你必须使用实例变量。