Как привести к типу Union из typing?
В ходе стажировки наткнулся на новый для себя тип Union, прочел документацию там пример вот ссылка https://mypy.readthedocs.io/en/stable/kinds_of_types.html Понятный пример но не решает моей задачи.
У меня есть аргумент функции например
def myFunc(data: Dict[str, List[Tuple[str, str]]]):
а вернуть я должен вот такой тип Dict[Union[str, int], Union[str, Tuple[str, str]]]
Мне не нужно решение, скорее объяснение что за тип такой, можно на примере показать.
Спасибо.
Ответы (3 шт):
Это словарь, ключами которого могут быть строки и числа, а значениями строки и кортежи из строк строк длинной 2 элемента.
Union обозначает, что значение может иметь один из типов перечисленных в квадратных скобках. Например Union[str, int] означает, что значение может иметь тип строки или целого числа.
Dict[Union[str, int], Union[str, Tuple[str, str]]] - словарь, в котором ключи целые числа или строки, а значения - строки или кортежи из двух строковых значений.
Union просто говорит о том, что некое значение может иметь один из нескольких заданных типов. То есть, если указано, что функция возвращает Union[str, int], то она может вернуть как строку, так и целое число.
Например:
def multiply(value: Union[str, int], factor: int) -> Union[str, int]:
return value * factor
Будет работать как со строками, так и с числами.
Официальную документацую пожалуйста не путайте, она расположена здесь: docs.python.org: typing.Union