gpt4 book ai didi

coding-style - 这个成语是pythonic吗? (someBool 和 "True Result"或 "False Result")

转载 作者:太空狗 更新时间:2023-10-29 21:14:56 25 4
gpt4 key购买 nike

我刚刚在一些开源 Python 中看到这个习语,我被饮料噎住了。

而不是:

if isUp:
return "Up"
else:
return "Down"

甚至:

return "Up" if isUp else "Down"

代码如下:

return isUp and "Up" or "Down"

我可以看出这是相同的结果,但这是 Python 中的典型习语吗?如果是这样,它是否是一些运行速度很快的性能黑客?或者它只是一次性的,需要代码审查?

最佳答案

PEP 308 之前,“a and b or c”成语是在 Python 中表达三元算术的规范方式。被编写并实现。这个成语不符合“b”答案本身就是错误的;为了支持一般情况,你可以写

 return (a and [b] or [c])[0]

另一种拼写方式是

 return (b,c)[not a]

随着 bool 类型的引入,可以重写为

 return (c,b)[bool(a)]

(如果不清楚:如果 a 还不知道是 bool,则必须转换为 bool 和 not 运算符)

今天,如果事物必须是表达式,则应使用条件表达式语法;否则我建议使用 if 语句。

关于coding-style - 这个成语是pythonic吗? (someBool 和 "True Result"或 "False Result"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/345745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com