Что такое аннотация типа для «любого вызываемого объекта, кроме класса» в Python с использованием Mypy? ⇐ Python
Что такое аннотация типа для «любого вызываемого объекта, кроме класса» в Python с использованием Mypy?
Я пытаюсь идеально ввести аннотацию следующей функции Python:
набрав import Callable, Any импортная проверка def foo(func: Callable[..., Any]) -> Нет: если проверить.isclass(функ): поднять ValueError # Сделай что-нибудь... класс Плохой: проходить защита хорошо() -> Плохо: вернуть Плохо() foo(хорошо) # ОК foo(Плохо) # НОК Я хотел бы сузить тип Callable[..., Any], чтобы он отклонял Bad, передаваемый в качестве аргумента.
Смотрите игровую площадку Mypy здесь.
Я не могу найти ничего ни в модуле types, ни в документации Mypy, чтобы отличить простую функцию от класса. Возможно ли это вообще?
Непонятно, почему type(Bad) и type(good) сильно различаются во время выполнения, но я не могу найти эквивалент для аннотации типа.
Я пытаюсь идеально ввести аннотацию следующей функции Python:
набрав import Callable, Any импортная проверка def foo(func: Callable[..., Any]) -> Нет: если проверить.isclass(функ): поднять ValueError # Сделай что-нибудь... класс Плохой: проходить защита хорошо() -> Плохо: вернуть Плохо() foo(хорошо) # ОК foo(Плохо) # НОК Я хотел бы сузить тип Callable[..., Any], чтобы он отклонял Bad, передаваемый в качестве аргумента.
Смотрите игровую площадку Mypy здесь.
Я не могу найти ничего ни в модуле types, ни в документации Mypy, чтобы отличить простую функцию от класса. Возможно ли это вообще?
Непонятно, почему type(Bad) и type(good) сильно различаются во время выполнения, но я не могу найти эквивалент для аннотации типа.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение