gpt4 book ai didi

python - python 中的可选列表参数 "list = list or []"

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:37 26 4
gpt4 key购买 nike

处理可选列表参数的常规方法如下:

def func(list_of_vals = None):
if list_of_vals is None:
list_of_vals = []
...

如果以下(较短的)版本有任何缺陷,我会感到很受伤吗?为什么没有人这样做?它是否被认为更晦涩?

list_of_vals = list_of_vals or []

最佳答案

if arg is None: 模式很常见,Python 开发人员很熟悉它并且没有奇怪的边缘情况。 我的建议是坚持惯例

bool(list_of_vals) == Falselist_of_vals 不是 None 时,您使用 or 的建议在逻辑上有偏差,所以我建议不要这样做那个。

另一种可能的选择是使用空元组“鸭子类型”:

def a(vals=()):
...

因为元组是不可变的,所以它没有可变默认列表的任何缺陷。在许多用例中,您只需要输入容器是可索引和可​​迭代的,因此 vals 可以愉快地保留为元组。

关于python - python 中的可选列表参数 "list = list or []",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40313509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com