operator模块可以在以下情况下轻松避免不必要的函数和 lambda:
import operator
def mytest(op, list1, list2):
ok = [op(i1, i2) for i1, i2 in zip(list1, list2)]
return all(ok)
mytest(operator.eq, [1, 2, 3], [1, 2, 3]) # True
mytest(operator.add, [-1, 2, -3], [1, -2, 33]) # False
好吧,现在我需要做,但令我惊讶的是,我在操作员模块中i1 and i2
找不到!and
这同样适用于or
!我知道,and
is 不完全是operator,它是一个keyword,但是和 evennot
一起,都是关键字,并且都包含在内。is
del
那么故事是什么?为什么他们失踪了?