python的延迟计算。
yzal的Python项目详细描述
python的延迟计算。
用法
使用yzal:
fromyzalimportlazy,strict@lazydefadd(x,y):sum=x+yprint('Adding {:d} + {:d} = {:d}',x,y,sum)
下面只创建一个thunk,它不运行上面的lazy函数。
>>>sum=add(3,7)
有两种方法可以得到懒惰评估的结果。首先是 只需执行需要严格值的操作。
>>>5+sumAdding3+7=1015
第二种方法是显式地请求一个严格的值。
>>>sum=add(3,7)>>>strict(sum)Adding3+7=1010
注意
如果我们不重新创建重击,副作用字符串就不会 再次显示。这是因为Thunk只会评估懒惰的人 它们包含一次表达式。对严格值的进一步请求将 返回缓存结果。当懒惰的人 函数不是纯函数。