Python3 - подпись функции указывает возвращаемое значение, но без указания типа - PullRequest
0 голосов
/ 08 апреля 2019

Я хотел бы определить функцию так, чтобы возвращаемое значение в разных случаях имело другой тип.

Тем не менее, я хотел бы включить в сигнатуру функции указание, что она возвращает что-то .

Я знаю, что один из способов сделать это - использовать Union, например:

from typing import Union

def f(x: int) -> Union[str, int]:
    return x if x > 0 else "this is zero"

Но в моем случае у меня нет списка возможных типов вывода.

Я пытался использовать:

def f(x: int) -> object:
    return some_other_func(x)

Проблема в том, что теперь, когда я пытаюсь использовать эту функцию, среда IDE сообщает мне, что у меня ошибка ввода:

y: SomeClass = f(42)
Error: Expected type 'SomeClass', got 'object' instead

Итак - как я могу указать в сигнатуре функции, что f возвращает некоторое значение, без указания типа значения?

1 Ответ

0 голосов
/ 08 апреля 2019

Из печатной документации можно использовать Any, например:

from typing import Any

def f(x: int) -> Any:
    return some_other_func(x)
...