当前位置: 首页 > 知识库问答 >
问题:

Python:内联if语句其他什么都不做

贾飞鸿
2023-03-14

如果Django模型的字段与条件匹配,则将其指定给值。

g = Car.objects.get(pk=1234)
g.data_version = my_dict['dataVersion'] if my_dict else expression_false # Do nothing??

在这种情况下我怎么什么都不做?如果条件通过,我们就不能做

我知道我能做到:

if my_dict:
    g.data_version = my_dict['dataVersion']

但我想知道,如果条件else什么都不做,是否有办法实现inlineexpression\u true。


共有1个答案

龙德润
2023-03-14

不,你不能完全按照你描述的去做,因为这没有意义。你分配给变量g.data_version...所以你必须分配一些东西。你描述的就像写:

g.data_version =  # There is nothing else here

这显然是无效的语法。事实上,没有理由这么做。您应该执行以下操作之一:

if my_dict:
    g.data_version = my_dict['dataVersion']

g.data_version = my_dict['dataVersion'] if my_dict else None # or 0 or '' depending on what data_version should be.

从技术上讲,您还可以:

g.data_version = my_dict['dataVersion'] if my_dict else g.data_version

如果您只想在dict存在的情况下更新g.data\U版本,但这比仅使用普通if语句的可读性和优雅性要差。

 类似资料:
  • 问题内容: 我注意到以下代码在Python中是合法的。我的问题是为什么?是否有特定原因? 问题答案: else仅当你的while条件为假时才执行该子句。如果你break超出循环范围,或者引发了异常,则不会执行该异常。 考虑它的一种方法是关于条件的构造: 一个示例可能类似于:

  • Python3 实例 以下实例通过使用 if...elif...else 语句判断数字是正数、负数或零: 实例(Python 3.0+)# Filename : test.py # author by : www.runoob.com # 用户输入数字 num = float(input("输入一个数字: ")) if num > 0: print("正数") elif num == 0: pri

  • 语法到底有什么问题,为什么会出现在下面的代码中?我已经数过括号了,但还没弄清楚。 注意:它给出了如下语法错误:

  • 我目前正在修复别人的Java代码中的一个bug,但我无法解释这个bug。所讨论的代码是下面的if语句: 其中初始化为和函数如下所示: 令我困惑的是,即使被设置为false,代码仍然调用并执行函数。我一直认为这是不应该发生的短路。if语句本身总体上仍然被计算为false,因为只有第一个代码段中的else-block中的代码被执行。 那么,这个if语句为什么会有这样的行为呢?是短路失败,还是我误解了原

  • 问题内容: 如何在JavaScript中使用内联语句?是否也有内联语句? 像这样: 问题答案: 您不一定需要jQuery。仅JavaScript就能做到这一点。 该变量将是如果该值,并且如果该值是。 这称为条件(三元)运算符。