Так что я не последовал за numba
событиями на некоторое время, и я обнаружил много интересных вещей, таких как @jitclass
и поддержку списка.jitclass vs extension API: что можно использовать в списке?
Так что я хотел бы попробовать это, но если я пытаюсь получить список моей jitclass
структуры в nopython
блоке я получаю ошибку:
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