Как повторно использовать экземпляр hashlib.md5

Как вы очищаете (или reset) и повторно используете экземпляр hashlib.md5 в python? Если я выполняю несколько операций хеширования в script, кажется неэффективным использовать новый экземпляр hashlib.md5 каждый раз, но из документации python я не вижу никакого способа сбросить или reset экземпляр.

Ответ 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