赞
踩
result=x<y and x or y
首先判断条件x小于y的真假,
如果为真and会返回x,然后计算x or y;
如果为假,and返回False,然后计算False or y一定是返回y的。
了解过C#、C++等语言的都清楚三元运算操作符:
bool ? a : b
若 bool 为真则 a ,否则为 b 。
相应的转换为Python的书写风格如下:
bool and a or b
解析: 首先 a , b 都为真,这是默认的。
如果 bool 为真, 则 bool and a 为真,输出 a ,短路 b 。
如果 bool 为假,短路 a,直接 bool or b ,输出 b 。
换一种更简单的写法:
return a if bool else b
如下示例有助于理解短路逻辑的原理:
>>> 0 and 2 0 >>> [] and 2 [] >>> 2 and {} {} >>> [] and {} [] >>> 2 and 5 5 >>> 5 and 2 2 >>> 0 or 2 2 >>> 2 or [] 2 >>> False or 5 5 >>> [] or {} {} >>> {} or False or [] []
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。