1
考虑类自由度,并且其子particleGroup:Numba jitclass:父类类型的类成员
class dof():
def getVar(self):
return self.var
spec = [
('var', float64[:]),
('C_s', float64[:]),
]
@jitclass(spec)
class particleGroup(dof):
def __init__(self, partRelease):
self.var = np.array([partRelease.Q, partRelease.M[0], partRelease.M[1], partRelease.M[2], partRelease.B, partRelease.x[0], partRelease.x[1], partRelease.x[2], 0])
self.C_s = np.copy(partRelease.C_s)
def getC(self):
return self.C_s
partRelease对象的细节并不重要。
dof是一个python类,因为numba不支持继承jitclass。因此,deferred_type不能用于它。
dof可以是不同儿童班的父母。我希望dof类用于另一个类,在那里我可以调用父函数getVar()。
我的问题:如何在另一个类中存储此类(dof类型或任何子类型)的实例?在jitclass规范中指定哪种类型?
然后:即使我可以指定父类的类型,我怀疑对python类的调用会很昂贵。是否有另一种有效地进行多态性的方法,例如使用模板而不是继承?