#python #generics #type-conversion #type-hinting
Вопрос:
Если я использую универсальный, который может быть двух типов данных и внутри функции, я преобразую его в один из них, а перед возвращением преобразую обратно, у меня появляется предупреждение
Expression of type "DataFrame" cannot be assigned to declared type ...
Возможно ли преобразовать универсальный в один из определенных типов, или это запрещено / рекомендуется?
from __future__ import annotations from typing import Generic, TypeVar import numpy as np import pandas as pd T = TypeVar("T", pd.DataFrame, np.ndarray) def process(data: T) -gt; T: convert_to_numpy = True if isinstance(data, np.ndarray) else False data = pd.DataFrame(data) # Here comes the warning # My functionality on dataframe # Convert data back to numpy if numpy on input return data