Как правильно оценивать ввод индекса при написании подсказок типа? - PullRequest
0 голосов
/ 12 апреля 2020

Я пишу пользовательский класс Dataset для конкретной проблемы глубокого обучения, и возник вопрос о том, как аннотировать index из __getitem__, используя подсказки типов.

Учитывая

    def __getitem__(self, i: int) -> Tuple[Tensor, Tensor]: 
        return self.X[i], self.y[i]

, как лучше всего аннотировать i, учитывая тот факт, что это может быть фрагмент (например, X[:i])?

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Итак, как я уже сказал, i может быть и целым числом или slice объектом.

Итак, вы можете попробовать:

def __getitem__(self, i: Union[int, slice]) -> Tuple[Tensor, Tensor]:
    ...
1 голос
/ 12 апреля 2020

Это будет Union типов:

from typing import Union, Tuple

def __getitem__(self, i: Union[int, slice]) -> Tuple[Tensor, Tensor]:
    . . .

Union[int, slice] означает "это может быть int или slice ».

...