Назад к вопросам
Yadro
Middle+
6
Как улучшить аннотацию типов функции разворота словаря, чтобы показать, что ключи и значения меняются местами? Что такое TypeVar?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Чтобы аннотировать функцию, которая разворачивает словарь, меняя ключи и значения местами, можно использовать два параметра типа с помощью TypeVar. Это позволит явно указать, что типы ключей и значений меняются ролями.
Пример:
from typing import TypeVar, Dict
K = TypeVar('K') # Тип ключей исходного словаря
V = TypeVar('V') # Тип значений исходного словаря
def invert_dict(d: Dict[K, V]) -> Dict[V, K]:
return {v: k for k, v in d.items()}
Здесь TypeVar — это способ объявить параметр типа, который может быть любым типом, но при этом сохраняет связь между входными и выходными типами. Это позволяет сделать аннотацию более гибкой и точной, особенно в обобщённых функциях и классах.