更好的写作方式:a = b如果a是None,则a

gny*_*his 3 python

我在Python中反复使用的一个非常常见的句子感觉"太长了",我希望有更多的Pythonic方法来编写它:

a = b if a is None else a
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来写这个?

Bre*_*bel 6

典型的捷径是

a = a or b
Run Code Online (Sandbox Code Playgroud)

虽然,这只会测试,如果a计算结果为False,所以0,False,None,'',等都会导致a被设置为b

  • 我认为这是一种非常危险的做法,正是出于您所说的原因,即 python 中有“许多”值的计算结果为“False”。我*更*宁愿读“b if a is None else a”而不是“a or b”,并且想知道其意图是否真的是用 b 替换 0 和空字符串,或者这是否是 a bug 或某人以某种方式确定 a 永远不会为零或空字符串。 (2认同)