我有一個簡單的 Python 類:class Node(object): def __init__(self): self._left = self self._right = self @property def left(self): return self._left @left.setter def left(self, value): self._left = value @property def right(self): return self._right @right.setter def right(self, value): self._right = value我想這JIT類,但目前尚不清楚如何定義的類型時,self._left與self._right是Node對象類型。我遇到了另一個使用的答案,.class_type.instance_type但該示例僅指包含不同類實例的類屬性。就我而言,由于Node尚未定義,我無法聲明以下規范:spec=[("_left", Node.class_type.instance_type), ("_right", Node.class_type.instance_type), ]@jitclass(spec)class Node(object):
1 回答

隔江千里
TA貢獻1906條經驗 獲得超10個贊
基于此示例- numba 具有deferred_type用于這種情況的功能。
node_type = numba.deferred_type()
spec=[
("_left", node_type),
("_right", node_type),
]
@jitclass(spec)
class Node:
# omitted
# define the deferred type
node_type.define(Node.class_type.instance_type)
# class can be used!
a = Node()
b = Node()
a.left = b
添加回答
舉報
0/150
提交
取消