170 похожих чатов

Можно ли как-то в аннотации к возвращаемым значениям функции сделать

условие, которое будет опираться на переданную в функцию аргумент?

Что-то вроде:
def func(b: bool) -> str if b else int:
...
if b:
return "stroka"
else:
return 5

23 ответов

8 просмотров

Версия?

from typing import Union

Literal + overload. Но лучше не делать такие функции. Скорее всего, тебе нужны две разные функции

Keen_k
from typing import Union

Юнион говорит, что может вернуться любой из обозначенный типов

Keen_k
Это вполне отвечает поставленной задаче.

Нет, в спрашивали, как сделать так, чтобы в зависимости от значения аргумента менялся возвращаемый тип

Pavel Павлик
Нет, в спрашивали, как сделать так, чтобы в зависи...

Ну нет, так нет. Но вопрос про тайпхинты, а не про возвращаемое значение.

Pavel Павлик
Эмм

>в аннотации к возвращаемым значениям

Keen_k
Ну нет, так нет. Но вопрос про тайпхинты, а не про...

Почему ты противопоставляешь тайпхинты и возвращаемое значение?

Pavel Павлик
Почему ты противопоставляешь тайпхинты и возвращае...

Не противопоставляю. Это разные сущности. Документацию можно забыть поправить.

Keen_k
Не противопоставляю. Это разные сущности. Документ...

Аннотации (типов) — это не докстринги, это альтернативное название тайпхинтов (если уж совсем въедливым быть, то это не одно и тоже) https://docs.python.org/3/glossary.html#term-annotation

Keen_k
Это к чему?

Это к тому, что ты назвал тайпхинты документацией

Pavel Павлик
Это к тому, что ты назвал тайпхинты документацией

Они как-то учитываются интерпретатором?

Keen_k
В случаях?

К примеру, пидантик

Pavel Павлик
К примеру, пидантик

А ничего, что пидантик это божественно удобный жуткий костыль.

Keen_k
А ничего, что пидантик это божественно удобный жут...

Это как-то влияет на то, обрабатываются ли тайпхинты в рантайме?

Pavel Павлик
Это как-то влияет на то, обрабатываются ли тайпхин...

Ну, как минимум, из коробки object так не умеет.

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
Карта сайта