与C表达式 bool ? a : b类似,但是bool and a or b,当 a 为假时,不会象C表达式 bool ? a : b 一样工作
应该将 and-or 技巧封装成一个函数:
def choose(bool, a, b): return (bool and [a] or [b])[0]
因为 [a] 是一个非空列表,它永远不会为假。甚至 a 是 0 或 '' 或其它假值,列表[a]为真,因为它有一个元素。
所属网站分类: 面试经典 > python
作者:外星人入侵
链接: http://www.pythonheidong.com/blog/article/45/
来源:python黑洞网 www.pythonheidong.com