1

在某些语言中(我认为是php和Java),可以这样省略三元运算符的第二部分:

a=“这是一个字符串”结果=a?:False(错误)

上述应等同于

a=“这是一个字符串”结果=a?a:错误

我想在以下(简化的)python代码中缩短三元运算符:

定义myFunc():return“这个字符串可能是空的,但现在不是了。”如果myFunc()else为False,则result=myFunc打印(结果)

如果字符串不为空,则打印字符串,如果字符串为空则打印False。

我之所以希望它更短,是因为现在我必须调用myFunc()两次,而不是一次,如果您能够像在其他语言中那样忽略其中一个。

当然,我可以将myFunc()赋给一个变量,并在三元运算符中使用该变量两次,但这会使它再次变大。

在python中有什么简单的方法可以做到这一点吗?或者这是不可能的吗?

1
  • “当然,我可以将myFunc()赋值给一个变量,并在三元运算符中使用该变量两次,但这会使它再次变大。”那又怎么样?只需将其分配给一个变量。 评论 2020年5月12日18:56

1答案1

重置为默认值

你可以使用此处作为空字符串计算为Falsey值:

结果=myFunc()或False

请参阅真值测试

2
  • 我测试了它,这正是我想要的!但我不明白为什么会这样?结果不应为True,而应返回字符串的值,因为非空字符串的计算结果为True将使语句:result=真或假哪一个是真的?
    – 基努
    评论 2020年5月12日19:04
  • 1
    这是一个条件语句。它检查左参数的真值,如果为真,则返回其值,否则返回右侧的值。请参见政治公众人物-0308了解更多有关此方面的信息。
    – 日本
    评论 2020年5月12日20:45

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.