С помощью этого кода:
Код: Выделить всё
class Location:
def __init__(self, name: str) -> None:
self.name = name
def __repr__(self) -> str:
return f"Location(name={self.name})"
def __eq__(self, other: Location) -> bool:
return self.name == other.name
Мне нужно определить другое > параметр должен быть объектом Location.
Подумав немного, это нормальное поведение, потому что до определения класса самого класса Location не существовало.
Я ищу и нашел это решение:
Код: Выделить всё
from typing import TypeVar
LocationType = TypeVar("LocationType", bound="Location")
class Location:
def __init__(self, name: str) -> None:
self.name = name
def __repr__(self) -> str:
return f"Location(name={self.name})"
def __eq__(self, other: LocationType) -> bool:
return self.name == other.name
Это правильное решение? Я знаю, что типизация не интегрирована с Python и предназначена только для проверки типов, но я думаю, что это не очень хорошее решение.
Подробнее здесь: https://stackoverflow.com/questions/770 ... e-type-tha