условие, которое будет опираться на переданную в функцию аргумент?
Что-то вроде:
def func(b: bool) -> str if b else int:
...
if b:
return "stroka"
else:
return 5
Версия?
from typing import Union
Literal + overload. Но лучше не делать такие функции. Скорее всего, тебе нужны две разные функции
Юнион говорит, что может вернуться любой из обозначенный типов
Это вполне отвечает поставленной задаче.
Нет, в спрашивали, как сделать так, чтобы в зависимости от значения аргумента менялся возвращаемый тип
Ну нет, так нет. Но вопрос про тайпхинты, а не про возвращаемое значение.
>в аннотации к возвращаемым значениям
Почему ты противопоставляешь тайпхинты и возвращаемое значение?
Не противопоставляю. Это разные сущности. Документацию можно забыть поправить.
Аннотации (типов) — это не докстринги, это альтернативное название тайпхинтов (если уж совсем въедливым быть, то это не одно и тоже) https://docs.python.org/3/glossary.html#term-annotation
Это к тому, что ты назвал тайпхинты документацией
Они как-то учитываются интерпретатором?
В случаях?
К примеру, пидантик
Да, спасибо
А ничего, что пидантик это божественно удобный жуткий костыль.
Это как-то влияет на то, обрабатываются ли тайпхинты в рантайме?
Ну, как минимум, из коробки object так не умеет.
Обсуждают сегодня