我正在阅读PIL,Link的文档,我发现了这一行
mask = source[R].point(lambda i: i < 100 and 255)
Run Code Online (Sandbox Code Playgroud)
那是什么意思i < 100 and 255呢?
这是在以下段落中的特色:
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)
更具可读性......