Аннотация методов получения/установки в файлах-заглушках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

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