Аннотация типов TypeVar

Почему нет разницы между TypeVar('T') и TypeVar('T', contravariant=True) работает одинаково и проходит проверки от mypy

from typing import TypeVar, List
#T = TypeVar('T')  # Определение T как контравариантного
T = TypeVar('T', contravariant=True)

def process_data(data: List[T]) -> None:
    for item in data:
        print(item)

object_list: List[object] = [1, 'hello', {'key': 'value'}]

process_data(object_list)

P.S. TypeVar('T') - Это означает, что можно использовать только изначально указанный тип. Таким образом, параметр инвариантного универсального типа не является ни ковариантным, ни контрвариантным.


Ответы (0 шт):