Измените тип переменной на универсальный тип

#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