【发布时间】:2018-03-14 10:00:21
【问题描述】:
Python 将逻辑运算符短路。 例如:
if False and Condition2:
#condition2 won't even be checked because the first condition is already false.
有没有办法阻止这种行为。我希望它检查两个条件,然后执行 and 操作(如在 c、c++ 等中所做的那样)。当我们与条件一起执行一些操作时,它很有用。例如:
if a < p.pop() and b < p.pop():
一种方法是检查之前的条件,然后比较布尔值。但这会浪费内存。
【问题讨论】:
-
我保证这里的“浪费”内存不会以任何方式影响您的程序。
-
内存浪费,不知道这里的内存是如何浪费的。
-
错误的解决方法:
(a<p.pop()) == (b<p.pop()) == True。好的解决方法:将您的if语句拆分为多行。 -
您似乎来自 C 编码领域,并且您正在尝试将 C 范式引入 Python,这可能有效,但也可能被视为反模式。条件检查的副作用是 Python 中的这种反模式。
-
C 语言也会“短路”。
标签: python logical-operators short-circuiting