Ich habe eine Hierarchie von Klassen und ich möchte meinen Code mit Numba Jitclass beschleunigen. Ich habe @jitclass für einige Beispiele ohne Klassenvererbung getestet und es funktioniert richtig und beschleunigt den Code. Wenn ich jedoch Klassenvererbung habe, trat der Fehler während der Kompilierung auf. Unten ist der Beispielcode, der das Problem zeigt. Ich wäre sehr dankbar für Kommentare und Anregungen. Jetzt sieht es für mich so aus, als ob die Klassenvererbung von Numba nicht unterstützt wird, aber ich habe in der Dokumentation keine Informationen darüber gefunden. Code-Beispiel:Numba Jitclass und Vererbung
import numpy as np
from numba import jitclass
from numba import int32, float32
spec = [
('n', int32),
('val', float32[:]),
]
@jitclass(spec)
class Parent(object):
def __init__(self, n):
self.n = n
self.val = np.zeros(n, dtype=np.float32)
spec = [
('incr', float32),
]
@jitclass(spec)
class Child(Parent):
def __init__(self, n):
Parent.__init__(self, n)
self.incr = 2.
def func(self):
for i in xrange(0, self.n):
self.val[i] += self.incr
return self.val
par = Parent(10)
chl = Child(10)
print chl.func()
Der Fehler ich habe ist:
TypeError: cannot subclass from a jitclass