是否有一种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必须是一个功能,但情况可能并非如此.
我正在使用web2py,我一直在查看源代码,以便更好地理解.多次我见过如下作业
# in file appadmin.py
is_gae = request.env.web2py_runtime_gae or False
如果request.env.web2py_runtime_gae为true,则False无关紧要.如果request.env.web2py_runtime_gae为false,则表达式变为false.
并且:
# in file appadmin.py
if False and request.tickets_db:
  from gluon.restricted import TicketStorage
永远不会评估和子句的第二部分,因为False和x总是返回false.
那么为什么会这样做呢?
你能告诉我python如何运行几个术语吗?
例如:
   a = 0
   b = 0
   c = 0
   if a == 0 and b == 1 and c == 0:
   # test fails
我猜python内部将测试分成3如果.但是,有两种可能的情况:
python如何在内部运行此测试?
谢谢你,问候,雨果