代码之家  ›  专栏  ›  技术社区  ›  norok2

列表的未检测到的危险默认值元组

  •  0
  • norok2  · 技术社区  · 5 年前

    dangerous-default-value 对于 items 使用时 pylint ? 这是一辆汽车吗 属于 派林 (即 缺陷 )?

    def func(item, items=([],)):
        items[0].append(item)
        return items
    

    我的理解是,应该尽一切努力,因为:

    print(func(1))
    # ([1],)
    print(func(2))
    # ([1, 2],)
    

    有没有标准的消毒方法,还是我必须自己做?

    ( 笔记 玩具 用于说明该问题的代码。)

    0 回复  |  直到 5 年前
        1
  •  0
  •   norok2    5 年前

    好像 pylint 触发 dangerous-default-value 仅适用于非嵌套 list , dict set documented 行为,因为行为 设置

    def func(item, items=set()):
        items[0].append(item)
        return items
    

    实际上会触发警告。


    FlyingCircus 套餐提供 freeze() 列表 , 字典 设置 容器。

    免责声明:我是该软件包的主要作者。