您好我正在尝试从 ndarray 派生一个类。我坚持使用文档__getiem__()
中的配方,但是当我覆盖一个函数时,我得到了一个我不明白的错误。我确定这是它应该如何工作,但我不明白如何正确地做到这一点。我的类基本上添加了“dshape”属性,如下所示:
class Darray(np.ndarray):
def __new__(cls, input_array, dshape, *args, **kwargs):
obj = np.asarray(input_array).view(cls)
obj.SelObj = SelObj
obj.dshape = dshape
return obj
def __array_finalize__(self, obj):
if obj is None: return
self.info = getattr(obj, 'dshape', 'N')
def __getitem__(self, index):
return self[index]
当我现在尝试做:
D = Darray( ones((10,10)), ("T","N"))
解释器将因最大深度递归而失败,因为他__getitem__
一遍又一遍地调用。
有人可以向我解释为什么以及如何实现 getitem 函数吗?
干杯,大卫