Никаких подсказок Pylance после украшения класса (Python)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Никаких подсказок Pylance после украшения класса (Python)

Сообщение Anonymous »

У меня вопрос по поводу подсказок Пиланса после украшения класса. У меня есть бесполезный минимальный пример:

Код: Выделить всё

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
Проблема в том, что метод alan.print неизвестен в IDE (VS Code). (Код работает нормально)
Теперь я могу исправить это явным объявлением типа. Здесь это хорошо намекает:

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»