Вам необходимо использовать метод __getitem__
.
class MyClass:
def __getitem__(self, key):
return key * 2
myobj = MyClass()
myobj[3] #Output: 6
И если вы собираетесь устанавливать значения, вам нужно реализовать метод __setitem__
, иначе это произойдет:
>>> myobj[5] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: MyClass instance has no attribute '__setitem__'