я не знаю что это за тип?
def f(s1: T, s2: T) :
return s1 + s2
Где T может являться листом, строкой, числом и тп.
И желательно показать, чтобы был реализован метод сложения
🤔хуево тогда сделоно
@Tishka17 вызываю свидетеля тайпхинтов . (Соре за пинг)
Ну дженерик же
Если реально любой тип, просто TypeVar: T = TypeVar("T") def identity(t: T) -> T: return T Если с ограничениями, то X = TypeVar("X", str, int) S = TypeVar("S", bound=Sequence[str]) Если нужно что-то посложнее, можно Protocol: class Addable(Protocol): def __add__(self: T, other: T) -> T: ...
Не, я хочу чтобы в def f(s1: T, s2: T) была проверка, что s1 и s2 одного типа. Я не знаю какого типа они будут, но я знаю ,что хочу проверять type(s1)==type(s2)
а как тут помогут жденерики?
Ну да. Ты можешь вызвать f(4, 5), но не f("a", [1, 2, 3]) — в этом и смысл TypeVar
ты прям дженерик и написал
А, тогда я понял. Я просто думал, что может принимать абсолютно любой тип
Обсуждают сегодня