Python 设置现有numpy对象的\uuuu散列\uuuuu

Python 设置现有numpy对象的\uuuu散列\uuuuu,python,numpy,reflection,getter-setter,monkeypatching,Python,Numpy,Reflection,Getter Setter,Monkeypatching,在我的实验中,我有一个numpy对象的实例,我需要设置它的\uuuuuuuuuuuuuuuuuuuuuuuuuu散列方法 我尝试过各种方法(实际上似乎完全相同): 将numpy导入为np x=np.array([1,2,3]) x、 flags.writeable=False#将数组设置为不可变 setattr(x,''uuuu hash,'uuuuuuu',lambda self:0)#没有self也无法工作 AttributeError:'numpy.ndarray'对象属性'\uuu散列'

在我的实验中,我有一个numpy对象的实例,我需要设置它的
\uuuuuuuuuuuuuuuuuuuuuuuuuu散列
方法

我尝试过各种方法(实际上似乎完全相同):

将numpy导入为np
x=np.array([1,2,3])
x、 flags.writeable=False#将数组设置为不可变
setattr(x,''uuuu hash,'uuuuuuu',lambda self:0)#没有self也无法工作
AttributeError:'numpy.ndarray'对象属性'\uuu散列'\uuu'为只读
x、 \uuuuu散列\uuuuuu=lambda self:0
AttributeError:'numpy.ndarray'对象属性'\uuu散列'\uuu'为只读

有没有办法强迫对象接受我的实现?这实际上是一个更广泛的问题:是否有办法将任何属性/方法分配给现有对象(包括魔术方法等)?

创建一个继承np的对象类?然后编写您的
\uuuuuuuuuuuuuuu散列
函数 我有点傻,但你觉得这样行吗


课堂测试(np):
定义散列(自我):
#作用

为什么需要对哈希方法进行修补?长话短说,numpy数组不支持哈希,这对我真的很有帮助。不过情况很复杂。另外,我很好奇python对其(已经存在的)对象能做什么和不能做什么:)不实现散列,因为它们是可变的,请参见一些上下文。没错!我忘了提到将数组设置为不可变(请参阅)。。将编辑我的原始问题。是的,肯定会在课堂上起作用。。。但是,我对已经存在的实例(不是类)特别感兴趣