Допустим, мы создаём функцию convert_first_int(), которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу:
from typing import TypeVarTupleTs = TypeVarTuple("Ts")def convert_first_int(values: tuple[int|str|float, *Ts]) -> tuple[int, *Ts]: return (int(values[0]), *values[1:])print(repr(convert_first_int(("1", "2", "3"))))TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Нам это нужно, потому что функция имеет дело только с первым элементом кортежа. Поэтому нам необходим способ выразить, что мы разрешаем любые оставшиеся типы.
(1, '2', '3')Спасибо подписчику @Trizalio за годную тему для поста.
#лучшиепрактики