跳到内容

类作为数据结构 (B903)

源自 flake8-bugbear linter。

此规则不稳定且处于预览状态。使用需要 --preview 标志。

作用

检查仅具有公共 __init__ 方法,没有基类和装饰器的类。

为什么这不好?

仅具有 __init__ 的类可能更适合作为数据类或命名元组,它们的样板代码更少。

示例

class Point:
    def __init__(self, x: float, y: float):
        self.x = x
        self.y = y

建议改为

from dataclasses import dataclass


@dataclass
class Point:
    x: float
    y: float