from abc import abstractmethod from dataclasses import dataclass class QuasiABC: @property @abstractmethod def x(self) -> int: ... @x.setter #@abstractmethod def x(self, val) -> int: ... @dataclass(frozen=True) class E(QuasiABC): x: int print(E(10))