Python中的条件运算符?
你知道Python是否支持像C ++那样的关键字或expression式来返回基于if
条件的值,全部在同一行(C ++ if
用问号表示) ?
// C++ value = ( a > 10 ? b : c )
从Python 2.5开始,你可以这样做:
value = b if a > 10 else c
以前,你将不得不做类似于下面的事情,虽然语义是不一样的短路效应丢失:
value = [c, b][a > 10]
还有另外一种使用'and … or'的黑客攻击,但是最好不要使用它,因为在某些情况下它会有不良行为,导致很难发现错误。 我甚至不会在这里写入黑客,因为我认为最好不要使用它,但是如果你愿意,你可以在维基百科上阅读它。
简单是最好的,并在每个版本的作品。
if a>10: value="b" else: value="c"