Я пишу библиотеку python, которая использует классы, расширяющие AB C:
class Either(ABC):
def __init__(self, left=None, right=None):
self._left = left
self._right = right
...
Я хочу использовать любую из моих реализаций в качестве вывода моих функций:
def data_to_tensor(self, input_dir: str, columns: List[NamedColumn]) -> Either[ErrorMessageWithCode, List[NamedTensor]]:
...
ErrorMessageWithCode
- моя оболочка для ошибок, в то время как NamedColumn
, NamedTensor
- просто псевдонимы типов для кортежей
Я думаю, что синтаксис объявления вывода функции ... -> Either[ErrorMessageWithCode, List[NamedTensor]]
не распознается, так как Either не ожидает получения параметров типа. Сбой при
TypeError: 'ABCMeta' object is not subscriptable
Не могли бы вы сказать, как разрешить Либо принять два параметра типа?
- Я очень плохо знаком с Python, возможно, есть чем заняться с модулем набора текста -
Спасибо