我在文档中发现:
函数int()总是返回零,它只是常数函数的特例。创建常数函数更快、更灵活的方法是使用itertools.repeat(),它可以提供任何常数值(不仅仅是零):
def constant_factory(value):
return itertools.repeat(value).next
d = defaultdict(constant_factory('<missing>'))
d.update(name='John', action='ran')
'%(name)s %(action)s to %(object)s' % d
'John ran to <missing>'
为什么不使用lambda函数来获取常数函数?
lambda
。 - Alexey