__slots__ 定義のクラスの無効な使用箇所を報告します。
未定義の属性にアクセスしている例:
class Foo:
__slots__ = ['foo', 'bar']
def __init__(self):
self.x = 3 # error: 'x' is not defined in __slots__
属性が競合している例:
class A:
__slots__ = ("x",)
x = 42 # error: conflict with "x" listed in __slots__
slots=True の例:
from dataclasses import dataclass
@dataclass(slots=True) # エラー: __slots__ は Foo でも定義されています
class Foo:
__slots__ = ['a']