Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,什么';这就是';x或False';和';False和x?_Python_Logic_Web2py - Fatal编程技术网

在Python中,什么';这就是';x或False';和';False和x?

在Python中,什么';这就是';x或False';和';False和x?,python,logic,web2py,Python,Logic,Web2py,我正在使用web2py,我一直在查看源代码以获得 一些更好的理解。我多次看到类似这样的作业 # in file appadmin.py is_gae = request.env.web2py_runtime_gae or False 如果request.env.web2py\u runtime\u gae为true,则False并不重要。无论哪种方式,如果request.env.web2py\u runtime\u gae为false,表达式都会变为false 而且: # in file ap

我正在使用web2py,我一直在查看源代码以获得 一些更好的理解。我多次看到类似这样的作业

# in file appadmin.py
is_gae = request.env.web2py_runtime_gae or False
如果request.env.web2py\u runtime\u gae为true,则False并不重要。无论哪种方式,如果request.env.web2py\u runtime\u gae为false,表达式都会变为false

而且:

# in file appadmin.py
if False and request.tickets_db:
  from gluon.restricted import TicketStorage
子句的第二部分永远不会计算,因为False和x总是返回False

那么为什么会有人这样做呢

val = x or False
确保val实际上是“False”(类型“bool”)而不是像0或“”这样的假值

第二个可能只是暂时禁用该条件


最好的调查地点可能是源代码管理历史?

与您的假设不太一样。因此,如果已知值满足条件,则计算将退出。请参见此示例:

>>> None or False
False
>>> True or False
True
>>> 0 or False
False
>>> 'Value' or False
'Value'

根据,第二个语句将简单地在该语句上返回
False
,其余语句将不被计算。这是一种无条件禁用if语句的方法。

Python是一种迷人而奇异的语言。它是一种称为的功能,在许多语言中都有,比如JavaScript。