Я написал класс, реализация которого .__hash__()
занимает много времени.Я думал кешировать его хэш и сохранить его в переменной типа ._hash
, чтобы метод .__hash__()
просто возвращал ._hash
.(Который будет вычислен либо в конце .__init__()
, либо при первом вызове .__hash__()
.)
Я рассуждал так: «Этот объект неизменен -> его хэш никогда не изменится -> Iможет кэшировать хеш. "
Но теперь это заставило меня задуматься: то же самое можно сказать о любом хешируемом объекте.(За исключением объектов, чей хэш является их идентификатором.)
Так есть ли когда-нибудь причина , а не для кэширования хеша объекта, за исключением небольших объектов, чье вычисление очень быстро выполняется?1017 *