В выпуске июля 2022 года расширения Python для Visual Studio Code появились «Подсказки типа вкладок», которые автоматически предлагают возвращаемые типы функций, не имеющих явной аннотации. Чтобы включить его, вы можете установить "python.analysis.inlayHints.functionReturnTypes": true в свои пользовательские настройки IDE (Предпочтения: команда «Открыть настройки» (JSON)).
При тестировании этой функции я заметил следующее предложение внутри класса:
... где выделенный желтым цветом текст — это тип возвращаемого значения, предложенный расширением Python, которое основано на Pylance , которое само полагается на Pyright.
Мой вопрос: что означает знак @ в этом предложении? Существует ли PEP, который относится к такого рода аннотациям типов (с Self@...), или этот способ подсказки типа специфичен для Pyright, отличаясь от стандартного соглашения? Где я могу найти больше информации об этом?
Я нашел похожий вопрос Stackoverflow здесь, но не получил ответа.






Это @ указывает, что Self является TypeVar, а Self@HereIsMyClassName относится к Self в контексте класса HereIsMyClassName (это также может быть функция). Это недопустимый Python. (Технически это допустимо, поскольку оператор @ является матричным умножением, поэтому вы умножаете матрицы Self и HereIsMyClassName. Однако это не то, что имеется в виду, и на самом деле не имеет никакого смысла.) Не пишите это в своем коде. , но знайте, что именно так Pylance показывает вам TypeVars, когда показывает определения типов. (Возможно, другие редакторы и расширения.)