Подсказки типов Python позволяют мне определить несколько @overload для одной функции, так что во время выполнения существует только одна версия функции, но с точки зрения средства проверки типов существует несколько версий.
Код: Выделить всё
from typing import overload
@overload
def double(x: int) -> int: ...
@overload
def double(x: str) -> str: ...
def double(x):
return x*2
Теперь я хочу объявить нерекомендуемой или предупредить об одной из перегрузок. Я не хочу предупреждать о самой функции, просто об использовании одной из ее сигнатур. Я думал сделать это с помощью @deprecated, но все аннотации @deprecated, которые я просматривал (
, предупреждения, сторонние), похоже, не поддерживают этот вариант использования. Все, что работает во время выполнения, не помогает, потому что сама функция не устарела.
Я не уверен, что это @deprecated-предупреждение, любое предупреждение подойдет.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... c-overload