Skip to content

dataclasses: frozen dataclasses with slots' __setattr__ and __delattr__ does not work.#105936

@avboag

Description

@avboag

Bug report

The check in frozen dataclasses' __setattr__ and __delattr__ does not work when slots=True:

@dataclass(frozen=True, slots=True) class C: i: int C(10).j = 5 

crashes with

Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 5, in __setattr__ TypeError: super(type, obj): obj must be an instance or subtype of type 

instead of raising a FrozenInstanceError.

Likewise,

@dataclass(frozen=True, slots=True) class C: i: int class D(C): pass D(10).j = 5 

crashes with the same error instead of working.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions