Как вы очищаете (или reset) и повторно используете экземпляр hashlib.md5 в python? Если я выполняю несколько операций хеширования в script, кажется неэффективным использовать новый экземпляр hashlib.md5 каждый раз, но из документации python я не вижу никакого способа сбросить или reset экземпляр.
Как повторно использовать экземпляр hashlib.md5
Ответ 1
Почему вы думаете, что это неэффективно, чтобы сделать новый? Это маленький объект, и объекты все время создаются и уничтожаются. Используйте новый, и не беспокойтесь об этом.
Ответ 2
Вот что я сделал, просто напишите небольшую обертку, которая повторно инициализирует хэш-объект. Обрабатывает неряшливость написания кода, но, возможно, не эффективность во время выполнения.
def Hasher(object):
def __init__(self):
self.md5 = hashlib.md5()
def get_hash(self, o):
self.md5.update(o)
my_hash = self.md5.digest()
self.md5 = hashlib.md5()
return my_hash