Как создать не абстрактный метод __hash__ в абстрактном классе Python
У меня есть абстрактный класс Type
class Type(ABC):
def __hash__(self) -> int:
return hash(self.text_repr())
@abstractmethod
def __eq__(self, other) -> bool: ...
@abstractmethod
def text_repr(self) -> str: ...
Я хочу сделать метод __hash__ не абстрактным, но это не работает именно с магическими методами. Если я допустим переименую метод в hash, то это будет работать. Но мне нужен именно магический метод, что бы пользоваться структурой данных set.
Я использую Python 3.10.6.
Ответы (1 шт):
Автор решения: farkon00
→ Ссылка
Оказывается это специфический случай в Python. То есть без __hash__ = Type.__hash__ не обойтись.
Документация