答案 0 :(得分:6)
Python and
和or
运算符懒惰地评估它们的表达式,允许您使用以下表达式:
function_object and function_object(some, arguments)
some_value or produce_new_value(expensive, call)
安全。
这使他们取消operator
治疗的资格,因为在将表达式传递给函数之前,你必须先评估表达式。
在上面的例子中,这意味着and
表达式不能用operator
函数表示;如果function_object
为false-y,它可能也不可调用,如果some_value
为true-thy,则不想调用昂贵的函数调用。
如果不需要延迟评估,那么创建自己的函数很容易:
def and_(op1, op2):
return op1 and op2
def or_(op1, op2):
return op1 or op2
答案 1 :(得分:1)
你可以写自己的:
logical_and = lambda a, b: a and b