Установка __hash__ для существующего объекта numpy - PullRequest
0 голосов
/ 21 октября 2019

В моем эксперименте у меня есть экземпляр объекта numpy, метод которого __hash__, который мне нужно установить.

Я пробовал различные подходы (которые на самом деле очень похожи):

import numpy as np
x = np.array([1, 2, 3])
x.flags.writeable = False  # set the array immutable

setattr(x, '__hash__', lambda self: 0)  # doesn't work without self either
AttributeError: 'numpy.ndarray' object attribute '__hash__' is read-only

x.__hash__ = lambda self: 0
AttributeError: 'numpy.ndarray' object attribute '__hash__' is read-only

Есть ли способ заставить объект принять мою реализацию? На самом деле это более широкий вопрос: есть ли способ присвоения какого-либо свойства / метода существующему объекту (включая магические методы и т. Д.)?

1 Ответ

0 голосов
/ 21 октября 2019

Создать объектный класс, который наследует np? Тогда напиши свою __hash__ функцию Я немного новичок, но думаю, что это сработает?


class Test(np):

    def __hash__(self):
      # function

...