【发布时间】:2017-03-11 20:15:04
【问题描述】:
处理可选列表参数的常规方法如下:
def func(list_of_vals = None):
if list_of_vals is None:
list_of_vals = []
...
如果以下(较短的)版本有任何陷阱,我会感到很困惑?为什么没有人这样做?它被认为更晦涩难懂吗?
list_of_vals = list_of_vals or []
【问题讨论】:
-
我这样做,我认为这很棒。体面的python程序员会理解它。但是使用
l作为变量名,那就不好了。 -
@AlexHall ,当然,这只是说明一个想法的示例代码
-
如果有人明确传递了一个空列表,您将创建一个新列表。这可能不是他们所期望的。
-
@jonrsharpe 不幸的是,Python 中的空列表是错误的,这一事实给模式带来了麻烦。
-
@Barmar 是的,如果他们也遵循 "either mutate or return" 模式应该没问题
标签: python list immutability optional-arguments