Устареть только определенной перегрузкиPython

Программы на Python
Anonymous
Устареть только определенной перегрузки

Сообщение Anonymous »

Подсказки типов 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, которые я просматривал (

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

typing_extensions
, предупреждения, сторонние), похоже, не поддерживают этот вариант использования. Все, что работает во время выполнения, не помогает, потому что сама функция не устарела.
Я не уверен, что это @deprecated-предупреждение, любое предупреждение подойдет.

Подробнее здесь: https://stackoverflow.com/questions/798 ... c-overload

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