I was making a dataset class by inheriting torch.utils.data.Dataset and came across the following issue.
Unlike previous functions which returns a fixed type of values, __getitem__ doesn't.
For example,
class MyExample:
def __init__(self, some_list: list[int]):
self.some_list = some_list
def __getitem__(self, index):
return self.some_list[index]
MyExample[<index>] will return int, while MyExample[<slice>] will return slice of int. VScode intellisense automatically write T_co for its type annotation, but I don't understand what this means.
- How should I annotate such a function?
- What do I need to learn in order to understand such an annotation?