我有一个简单的 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
提交
取消