1
所以我沒有按照numba
開發一段時間,我發現了很多令人興奮的事情,如@jitclass
和列表支持。jitclass vs擴展API:可以在列表中使用什麼?
所以我想嘗試一下,但如果我嘗試在一個nopython
塊我jitclass
結構的名單,我得到的錯誤:
reflected list(instance.jitclass.Interval#42f9788<lo:float64,hi:float64>): unsupported nested memory-managed object
使用簡單下面的類
@jitclass([('lo', types.float64), ('hi', types.float64)])
class Interval(object):
def __init__(self, lo, hi):
self.lo = lo
self.hi = hi
@property
def width(self):
return self.hi - self.lo
而且最簡單的對應代碼:
@jit(nopython=True)
def f(my_list):
return my_list
f([Interval(1,2)]*10)
但是,如果我遵循使用漫長的擴展API here,的示例,我不會有任何問題與Interval
的列表。
我以爲jitclass基本上是做擴展API的冗長例子的一種快速方式,我錯了嗎?如何在不必編寫這些容易出錯的綁定函數的情況下實現它?
確實很好。謝謝! – Evariste