gpt4 book ai didi

python - 一行 if 条件赋值

转载 作者:IT老高 更新时间:2023-10-28 21:07:51 25 4
gpt4 key购买 nike

我有以下代码

num1 = 10
someBoolValue = True

如果someBoolValueTrue,我需要将num1的值设置为20;否则什么也不做。所以,这是我的代码

num1 = 20 if someBoolValue else num1

有没有什么方法可以避免 ...else num1 部分让它看起来更干净?等价于

if someBoolValue:
num1 = 20

我尝试将其替换为 ...else pass,如下所示:num1=20 if someBoolValue else pass。我得到的只是语法错误。我也不能省略 ...else num1 部分。

最佳答案

我认为这在 Python 中是不可能的,因为您实际尝试做的事情可能会扩展为如下内容:

num1 = 20 if someBoolValue else num1

如果你排除 else num1,你会收到一个语法错误,因为我很确定这个赋值实际上必须返回一些东西。

正如其他人已经提到的那样,您可以这样做,但这很糟糕,因为您可能会在下次阅读那段代码时弄糊涂:

if someBoolValue: num1=20

出于完全相同的原因,我不是 num1 = someBoolValue 和 20 或 num1 的忠实粉丝。实际上,我必须三思而后行。

真正实现你想做的最好的方法是原始版本:

if someBoolValue:
num1 = 20

最好的版本是因为它非常明显你想要做什么,你不会混淆自己,或者以后会接触到该代码的其他人。

另外,作为旁注,num1 = 20 if someBoolValue 是有效的 Ruby 代码,因为 Ruby 的工作方式有点不同。

关于python - 一行 if 条件赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872838/

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