有没有一种Pythonic的方法来封装一个懒惰函数调用,在第一次使用函数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
必须是一个函数,但情况可能并非如此。
f() and g()
中,如果f()
为False
,则惰性求值不会调用g()
。这个问题不是关于这个的。 - detlyg()
至少会被调用一次。 - detly