Предположим, у меня есть:
Код: Выделить всё
from typing import Any, TypeVar
import numpy as np
T = TypeVar("T")
U = TypeVar("U")
ListLike = T | list[T] | tuple[T, ...] | np.ndarray[Any, U]
ListLikeStr = ListLike[str, np.object_]
# ListLikeStr should be: str | list[str] | tuple[str, ...] | np.ndarray[Any, np.object_]
В идеале я мог бы сделать что-то вроде: ListLike[T=str, U=np .object_], но это не работает. Так что же определяет порядок при создании экземпляров переменных типа в ListLike? Как ListLike "знает", что T соответствует str, а U - np.object_, когда я пишу ListLike[str, np.object_]< /код>?
Подробнее здесь: https://stackoverflow.com/questions/786 ... neric-type