Код: Выделить всё
class PrimaryModel():
def print(self):
print("I am invisible O.o")
def mydeco(cls: PrimaryModel):
return cls
if __name__ == "__main__":
@mydeco
class User(PrimaryModel):
pass
alan = User()
alan.print() # no hints
Теперь я могу исправить это явным объявлением типа. Здесь это хорошо намекает:
Код: Выделить всё
class PrimaryModel():
def print(self):
print("I am invisible O.o")
def mydeco(cls: PrimaryModel):
return cls
if __name__ == "__main__":
@mydeco
class User(PrimaryModel):
pass
alan: PrimaryModel = User()
alan.print() # hints ok
Код: Выделить всё
class PrimaryModel():
def print(self):
print("I am invisible O.o")
def mydeco(cls: PrimaryModel):
return cls
if __name__ == "__main__":
@mydeco
class User(PrimaryModel):
pass
class Player(User):
pass
alan: PrimaryModel = Player()
alan.print() # no hints :'(
Я пробовал явное объявление типа, проверяя тип времени выполнения. Просто не удалось заставить это работать.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ass-python