Sobes.tech
Middle+

Hogyan javíthatom a szótár fordítófüggvény típusannotációját, hogy megmutassa, hogy a kulcsok és értékek felcserélődnek? Mi az a TypeVar?

sobes.tech MI

Válasz az MI-től

Чтобы аннотировать функцию, которая разворачивает словарь, меняя ключи и значения местами, можно использовать два параметра типа с помощью 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 — это способ объявить параметр типа, который может быть любым типом, но при этом сохраняет связь между входными и выходными типами. Это позволяет сделать аннотацию более гибкой и точной, особенно в обобщённых функциях и классах.