Есть ли какой-либо встроенный способ сообщить Python3, что он должен принимать объекты данного класса?
Нет.
Этого не существует, ив любом случае это было бы бесполезно, потому что Python использует принцип Duck Typing.Если он выглядит как Player
и крякает как Player
, относитесь к нему как к игроку.В противном случае, raise TypeError
.
Вы должны повышать TypeError
только тогда, когда вы просите объект сделать что-то, что Player
должен быть в состоянии сделать, и он не может этого сделать.Что если кто-то захочет передать экземпляр своего собственного Player
класса в вашу функцию?Тогда это не сработает.
Возвращаясь к вашей реальной проблеме: вы хотите напечатать подсказку Player
до того, как будет определено Player
.Способ сделать это - написать "Player"
вместо Player
в подсказке типа:
def change_player_activity(self, player: "Player"):
pass
В __future__
(каламбур предназначен), разработчики Python планируют:заставьте его не пытаться сразу же найти подсказки типа , потому что такие вещи - боль.