一个班轮“如果没有,请分配”

问题描述 投票:0回答:1

仅当分配的值不为None时,才可以进行分配,否则什么都不做?

我们当然可以做:

x = get_value() if get_value()

但是这将读取两次值。我们可以将其缓存到本地变量:

v = get_value()
x = v if v

但是现在我们就一件简单的事情做了两个陈述。

我们可以编写一个函数:

def return_if_not_none(v, default):
    if v:
        return v
    else:
        return default

然后执行x = return_if_not_none(get_value(), x)。但是肯定已经有一个Python惯用语可以完成此操作,而无需两次读取xget_value()并且没有创建变量吗?

python python-3.x null assignment-operator
1个回答
0
投票

在python 3.8中,您可以执行以下操作

if not (x := value()): x = 1
© www.soinside.com 2019 - 2024. All rights reserved.