class Test[T]: def __init__(self, value: T): self.value = value def get_value(self) -> T: return self.value def add[T: int|str|float](a: T, b: T) -> T: return a + b # type: ignore res = add(1, 2) assert res == 3 test = Test(1) assert test.get_value() == 1 # test multiple class Test2[T: int, U]: pass class Test3[T: int | str, U: float, R: list]: pass