跳到内容

重新实现的容器内置函数 (PIE807)

派生自 flake8-pie 代码检查工具。

有时提供修复。

作用

检查可以被 listdict 内置函数替代的 lambda 表达式。

为什么这不好?

使用容器内置函数比用 lambda 表达式包裹字面量更简洁和符合习惯。

示例

from dataclasses import dataclass, field


@dataclass
class Foo:
    bar: list[int] = field(default_factory=lambda: [])

建议改为

from dataclasses import dataclass, field


@dataclass
class Foo:
    bar: list[int] = field(default_factory=list)
    baz: dict[str, int] = field(default_factory=dict)

参考