重新实现的容器内置函数 (PIE807)
派生自 flake8-pie 代码检查工具。
有时提供修复。
作用
检查可以被 list
或 dict
内置函数替代的 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)