The Python 2.7 documentation имеет это сказать о hashlib hashers:Как именно хеш-листы хешлиба рассматривают ввод?
hash.update(arg)
Update the hash object with the string arg. [...]
Но я видел людей, кормить его объекты, которые не являются строками, например, buffers, numpy ndarrays.
Учитывая, что утиная утиная Python, я не удивлен, что можно указать , чтобы указать нестроковые аргументы.
Вопрос в следующем: откуда я знаю, что хешер Правильная вещь с аргументом?
Я не могу представить, чтобы хэшир наивно выполнял мелкую итерацию аргумента, потому что это, вероятно, потерпит неудачу с ndarrays с более чем одним измерением - если вы сделаете мелкую итерацию, вы получите ndarray с n-1 измерениями.
Многомерные массивы из numpy могут работать, но считается ли это «прекрасным» или не зависит от того, гарантируют ли ваше приложение и библиотеки, например numpy, точное расположение макетов данных, которые он представляет через буферный интерфейс , Будет ли всегда одно и то же? Упорядочено строками или столбцами? В каком формате находятся байты массива больших значений, хранящихся в? и т. д. Убедитесь, что они всегда одинаковы, прежде чем вы получите что-то иное, чем очевидную линейную последовательность байтов. – gps