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類的調用會很昂貴。是否有另一種有效地進行多態性的方法,例如使用模板而不是繼承?