Как добавить классу возможность получать значения в виде "my_class[2]"?

Вот таким образом:

arr = SparseArray()
arr[1] = 10
arr[8] = 20

Ответы (1 шт):

Автор решения: Mipsirint

В классах можно определять метод __getitem__, который возвращает какое-либо значение, когда мы обращаемся к нему по индексу:

class SparseArray:
    def __getitem__(self, key):
        # если значение или тип ключа некорректны, list выбросит исключение
        return self.values[key]

Почитайте про магические методы, там много всего полезного

→ Ссылка