这是合法/可靠的款式,还是有什么问题?
这是合法的,这是
short circuit evaluation
返回最后一个值的位置。
你提供了一个很好的例子。函数将返回
0
如果没有传递参数,并且代码不必检查没有传递参数的特殊情况。
另一种使用方法是将none参数默认为可变原语,如空列表:
def fn(alist=None):
alist = alist or []
....
如果一些不真实的价值被传递给
alist
它默认为空列表,避免
if
声明和
mutable default argument pitfall