如何在Python中刷新(或重置)并重复使用hashlib.md5的实例?如果我在脚本中执行多个哈希操作,每次使用一个新的hashlib.md5实例似乎效率低下,但从Python文档中看不到任何刷新或重置实例的方法。
你认为重新创建一个对象是低效的吗?其实这只是一个小对象,而且对象的创建和销毁一直在进行。使用一个新的对象,不必担心它。
这是我所做的,只需编写一个重新初始化哈希对象的小包装器。处理了代码编写的笨拙,但也许不能提高运行时效率。
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