避免或延迟对不可用物品的评估
问题内容:
如何在Python中实现惰性评估?几个简单的例子:
>>> def foo(x):
... print(x)
... return x
...
>>> random.choice((foo('spam'), foo('eggs')))
spam
eggs
'eggs'
上面,我们真的不需要评估该元组的所有项目来选择其中一个。在下面,foo()
除非查找字典中实际上缺少查找键,否则实际上不需要计算默认值:
>>> d = {1: "one"}
>>> d.get(2, foo("default"))
default
'default'
>>> d.get(1, foo("default"))
default
'one'
我正在寻找一种Python的方式来重构上述示例,从而懒惰地求值。
问题答案: