在Python中,什么';这就是';x或False';和';False和x?
我正在使用web2py,我一直在查看源代码以获得 一些更好的理解。我多次看到类似这样的作业在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
# 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。