int) -> tuple[Sequence[T], Sequence[T]]: ...
тип seq совпадает с типами внутри тюпла?
T = TypeVar("T")
S = TypeVar("S", bound=Sequence[T])
не помог - баунд не может быть дженериком
а покажи имплементацию
return seq[:at], seq[at:]
Боюсь представить как надо написать код, чтобы это вообще сработало. В общем случае ты НЕ можешь создать объект такого же типа как сущестющий
ну в питоне вроде обычно нет штук типа str_view или list_view
А при чем тут str и list? Разных секвенсов бесконечно много
А разве у нас сигнатура секвенса требует чтобы срез возвращал тот же тип?
а хм да, вообще нет https://github.com/python/typeshed/blob/main/stdlib/typing.pyi#L521-L522
да мне хоть как, главное чтобы тайпчекалось
Как можно тайпчекать код, который невозможно написать?
def split_at(seq: ..., at: int) -> tuple[..., ...]: return seq[:at], seq[at:]
Судя по ссылке выше, срез не обязан возвращать тот же тип. Он возвращает секвенс
ну можно не тот же
Ну тогда то что ты изначально сказала
собственно в том что я на расте написала типы разные
Обсуждают сегодня