У меня есть собственный кортеж:
from typing import Generic, TypeVar
T = TypeVar('T')
class MyTuple(tuple, Generic[T]):
pass
Есть ли простой способ сделать его подписанным (для подсказок типа) с неограниченными параметрами типа?
Например, это нормально:
def foo(t: MyTuple[int]):
pass
foo(MyTuple((1, )))
Но это:
def foo(t: MyTuple[int, str]):
pass
foo(MyTuple((1, '1')))
дает мне TypeError: Too many parameters for MyTuple; actual 2, expected 1
.
Я хочу, чтобы вести себя как печатать. Кортеж:
from typing import Tuple
def foo(t: Tuple[int, str]):
pass
foo(tuple((1, '1'))) # OK