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