我希望你能做类似于这个的事情:
from collections import defaultdict
import hashlib
def factory():
key = 'aaa'
return { 'key-md5' : hashlib.md5('%s' % (key)).hexdigest() }
a = defaultdict(factory)
print a['aaa']
实际上,我需要在工厂中访问密钥的原因并不是为了计算md5
,而是出于其他原因;这只是一个例子。
正如您所看到的,在工厂中我无法访问密钥:我只是强制使用它,这根本没有任何意义。
是否可能以一种方式使用defaultdict
,以便可以在工厂中访问密钥?
defaultdict
,它只是用来纠正缺失值吗?因为除了返回{}
之外,它没有其他作用吗? - Torxeddefaultdict
的全部意义,不是吗?问题在于,我(真实)存储在defaultdict
中的数据结构,其字段取决于键。因此,每当我尝试访问不存在的元素时,我需要使用defaultdict
的键作为参数,在工厂中创建它。 - blueFast