仅当分配的值不为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惯用语可以完成此操作,而无需两次读取x
或get_value()
并且没有创建变量吗?
在python 3.8中,您可以执行以下操作
if not (x := value()): x = 1