【发布时间】:2013-07-12 17:38:40
【问题描述】:
据我所知,Python 有两个Ternary Operators:
a if test else b
测试和a或b
看起来他们达到了相同的目标,并且都可以在lambda函数中使用。
>>> (lambda x: True if x > 0 else False)(5)
True
>>> (lambda x: True if x > 0 else False)(-5)
False
>>> (lambda x: x > 0 and True or False)(5)
True
>>> (lambda x: x > 0 and True or False)(-5)
False
问题
在任何情况下我们应该使用其中一个而不是另一个?
【问题讨论】:
-
不,
... and ... or ...不是三元运算符。即两个 二元运算符。
标签: python lambda conditional-operator