Код: Выделить всё
def combine[T: (int, str)](a: T, b: T) -> T:
match a:
case int():
return a + b
case str():
return a + b
Код: Выделить всё
possibleTypeForCombine = int | str
# or
from typing import Union
possibleTypeForCombine = Union[int, str]
Я попытался использовать псевдоним этого типа в новой версии функции:
Код: Выделить всё
def combine2[T: possibleTypeForCombine](a: T, b: T) -> T:
match a:
case int():
c = a + b
return c
case str():
c = a + b
return c
ошибка: отсутствует оператор возврата. Ошибка [return]: не поддерживается. Типы операндов для + ("str" и "T") Ошибка [оператора]: несовместимый тип возвращаемого
значения (получено "str", ожидается "T") [возвращаемое значение]
Конечно, я этого ожидал. Синтаксис ограничения универсального типа: T: (возможный тип 1, возможный тип 2).
Я хотел бы знать, тем не менее, возможно ли сделать что-то подобное
Подробнее здесь: https://stackoverflow.com/questions/791 ... ption-type