Аннотация методов получения/установки в файлах-заглушкахPython

Программы на Python
Ответить
Anonymous
 Аннотация методов получения/установки в файлах-заглушках

Сообщение Anonymous »

Я работаю над документацией по коду-оболочке Python для библиотеки .NET. Для явного получения и установки свойств .NET я использую методы получения и установки. Для удобства чтения кода я использую подсказки типов по всему коду. Для разрешения мультиметодов и предоставления контекстной справки я параллельно поддерживаю файлы-заглушки. И здесь я столкнулся с некоторыми проблемами. Когда я пишу в коде:

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

@property
def foo(self) -> int:
...

@foo.setter
def foo(self, bar: int) -> None:
...
и в файле-заглушке пишу:

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

@property
def foo(self) -> int: ...

@foo.setter
def foo(self, bar: int) -> None: ...
PyCharm выдает «Ожиданный тип 'int», вместо этого получено «Нет». для метода установки. Похоже, что PyCharm просто оценивает метод получения файла-заглушки. Я мог бы сделать:

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

@property
def foo(self) -> int | None: ...
в файле-заглушке, который устраняет возникшую ошибку, хотя это не кажется правильным способом сделать это.
Как правильно аннотировать методы получения и установки в файлах-заглушках?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... stub-files
Ответить

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

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

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

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

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