Python:将小于(<)运算符与`和`关键字组合在一起?

s̮̦*_*̥̳̼ 2 python python-3.x

我正在阅读PIL,Link的文档,我发现了这一行

mask = source[R].point(lambda i: i < 100 and 255)
Run Code Online (Sandbox Code Playgroud)

那是什么意思i < 100 and 255呢?

Ter*_*ryA 5

这是在以下段落中的特色:

Python仅评估逻辑表达式的一部分,以确定结果,并返回作为表达式结果检查的最后一个值.因此,如果上面的表达式为false(0),Python不会查看第二个操作数,因此返回0.否则返回255.

如果i < 100为True,则返回255.考虑到RGB(255,0,0)返回Red的整个RGB颜色方案,这是有意义的.


但是,是的,这是不好的做法.它应该是:

mask = source[R].point(lambda i: 255 if i < 100 else 0)
Run Code Online (Sandbox Code Playgroud)

更具可读性......