Код: Выделить всё
class Game:
...
G = TypeVar('G', bound=Game)
def search(game: G) -> G:
results: Queue[int | G | None] = Queue()
...
game = results.get()
assert game is G # here is the problem
return game
Очередь также отвечает за тип возвращаемого значения функции поиска, поэтому Я должен проверить, относится ли игра именно к типу G, или в противном случае выдать ошибку.
Я использую Mypy для проверки типов, все мои попытки не смогли проверить, есть ли results.get() это G
Тем временем я пробовал:
Код: Выделить всё
assert game is Game
# ---
assert isinstance(game, Game)
# ---
assert issubclass(game, Game)
# ---
assert isinstance(game, Game) or issubclass(game, Game)
Что мне следует сделать, чтобы проверить, работает ли results.get() возвращает тот же тип, что и входные данные?
Подробнее здесь: https://stackoverflow.com/questions/793 ... varbound-x