Устареть только определенной перегрузки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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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