Ни некомментированная, ни комментированная версия ReaderMethod/WriterMethod не работает, mypy жалуется на строку 18, например: «Функция, возвращающая TypeVar, должна получить хотя бы один аргумент, содержащий ту же TypeVar», среди прочего (введите подсказку) проблемы. Что я делаю не так? Как я могу улучшить подсказки типов, чтобы у меня были эти псевдонимы ReaderMethod/WriterMethod и mypy был доволен?
Я успешно (так что mypy не жалуется) написал подсказки типов для декораторов с параметрами, которые украшают методы класса в Python 3.11.9: [code]import functools from typing import Callable, TypeVar
MyClassType = TypeVar("MyClassType", bound=object) T = TypeVar("T")
class MyClass: @reader("test") def _my_reader(self) -> int: return 1
@writer("test") def _my_writer(self, val: float) -> None: print(val) [/code] Теперь я хотел бы сократить возвращаемые декоратором подсказки типа следующим образом: [code]import functools from typing import Callable, TypeVar, TypeAlias
MyClassType = TypeVar("MyClassType", bound=object) T = TypeVar("T")
class MyClass: @reader("test") def _my_reader(self) -> int: return 1
@writer("test") def _my_writer(self, val: float) -> None: print(val) [/code] Ни некомментированная, ни комментированная версия ReaderMethod/WriterMethod не работает, mypy жалуется на строку 18, например: «Функция, возвращающая TypeVar, должна получить хотя бы один аргумент, содержащий ту же TypeVar», среди прочего (введите подсказку) проблемы. Что я делаю не так? Как я могу улучшить подсказки типов, чтобы у меня были эти псевдонимы ReaderMethod/WriterMethod и mypy был доволен?