擅长:python、mysql、java
<p>你的代码有两个问题。第一,索引也可以是<code>tuple</code>(不仅仅是<code>int</code>)。
另一个是,在函数的返回中,您将使用<code>[]</code>获得项,它也使用<strong>getitem</strong>。这将导致无限递归。必须使用父类的函数与<code>super()</code></p>
<pre><code>import numpy as np
class myarray(np.ndarray):
def __getitem__(self, index):
if isinstance(index, tuple):
index = index[0] + 1,
else:
index += 1
return super(myarray, self).__getitem__(index)
my_k = np.linspace(0, 10, 10).view(myarray)
k = np.linspace(0, 10, 10).view(np.ndarray)
print(my_k)
print(k)
</code></pre>