【问题标题】:is there a way to print the value being evaluated in an if statement without having to store it in a variable? [duplicate]有没有办法在 if 语句中打印正在评估的值而不必将其存储在变量中? [复制]
【发布时间】:2019-12-31 15:33:03
【问题描述】:

这可能是一个愚蠢的问题,但我想知道是否有一种方法可以打印或使用 if 语句中正在评估的值,而不必在评估之前先将其存储在变量中?

类似于这种语法的东西:

if value_of_really_long_expression == True:
    print(value_of_really_long_expression)

当然这可以通过以下方式实现:

x = value_of_really_long_expression

if x == True:
    print(x)

纯粹出于兴趣/好奇,我想知道这是否可能

【问题讨论】:

  • 不,无论如何都不会出现在 python 的稳定版本中。尽管具有讽刺意味的是,如果您在== 检查中输入了if 块,您已经知道表达式的计算结果。但是,我假设这只是一个美化的简化示例。
  • 您可能对这篇文章感兴趣:stackoverflow.com/q/11880430/4636715。至少你可以减少到单线。

标签: python if-statement


【解决方案1】:

这是不可能的;没有可以使用的隐式引用。不过,Python 3.8 引入了一个赋值表达式,它至少简化了赋值:

if (x := really_long_expression):
    print(x)

x 的范围和你写的一样

x = really_long_expression
if x:
    print(x)

也就是说,x 不是 if 语句体的局部变量。

【讨论】:

  • 太棒了...没有意识到这一点 - 等待接受答案(时间限制):)
  • 严格来说,您必须等待几个月才能正式使用它:)
  • 了解,但对 3.8 感到兴奋:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
相关资源
最近更新 更多