Вам нужно использовать объявление типа Type[X]
, только если вы печатаете тип (это не обычная ситуация - например, если у вас есть фабричная функция, которая принимает тип, а не экземпляр объектав качестве аргумента). Чтобы напечатать объект, просто используйте тип объекта:
p1: Player = SomeSubclass()
Обратите внимание, что даже без подсказки типа mypy автоматически сделает вывод, что p1
имеет тип SomeSubclass
и, следовательно, являетсяPlayer
. Вам нужно только добавить подсказку типа Player
, если вы хотите явно понизить p1
до более общего типа, чтобы позже вы могли назначить ему другой подкласс.