Python惰性评估器


问题内容

是否有Python方式封装惰性函数调用,从而在第一次使用该函数时f(),它会调用先前绑定的函数,g(Z)而在后续调用中会f()返回一个缓存的值?

请注意,记忆可能并不完美。

我有:

f = g(Z)
if x:
     return 5
elif y:
     return f
elif z:
     return h(f)

该代码有效,但我想对其进行重组,以便g(Z)仅在使用该值时调用它。我不想更改的定义g(...),并且Z要缓存有点大。

编辑:我认为这f将必须是一个函数,但事实并非如此。


问题答案:

无论您是寻求缓存还是懒惰的评估,我都有些困惑。对于后者,检查出的模块由阿尔贝托Bertogli
lazy.py