相关疑难解决方法(0)

301
推荐指数
3
解决办法
8万
查看次数

Python懒惰评估器

是否有一种Pythonic方法来封装一个惰性函数调用,在第一次使用该函数时f(),它调用一个先前绑定的函数,g(Z)并在连续调用时f()返回一个缓存值?

请注意,记忆可能不是一个完美的选择.

我有:

f = g(Z)
if x:
     return 5
elif y:
     return f
elif z:
     return h(f)
Run Code Online (Sandbox Code Playgroud)

代码可以工作,但是我想重组它,这样g(Z)只有在使用该值时才会调用它.我不想改变它的定义g(...),并且Z缓存有点大.

编辑:我认为这f必须是一个功能,但情况可能并非如此.

python caching memoization lazy-evaluation

7
推荐指数
1
解决办法
7128
查看次数

在Python中,'x或False'和'False和x是什么意思?

我正在使用web2py,我一直在查看源代码,以便更好地理解.多次我见过如下作业

# in file appadmin.py
is_gae = request.env.web2py_runtime_gae or False
Run Code Online (Sandbox Code Playgroud)

如果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
Run Code Online (Sandbox Code Playgroud)

永远不会评估子句的第二部分,因为False和x总是返回false.

那么为什么会这样做呢?

python logic web2py

2
推荐指数
1
解决办法
83
查看次数

Python:如何处理?

你能告诉我python如何运行几个术语吗?

例如:

   a = 0
   b = 0
   c = 0

   if a == 0 and b == 1 and c == 0:
   # test fails
Run Code Online (Sandbox Code Playgroud)

我猜python内部将测试分成3如果.但是,有两种可能的情况:

  • python如果一个接一个地运行全部3,其中一个是错误的,测试失败
  • 或者如果一个接一个地运行python,则在第一个失败的情况下,如果测试失败,其他的则不运行

python如何在内部运行此测试?

谢谢你,问候,雨果

python boolean short-circuiting

1
推荐指数
2
解决办法
120
查看次数