Можно ли перегрузить [] (__getitem__)
оператор Python и методы цепочки, используя начальную ссылку на память.
Представьте, что у меня есть класс Math
, который принимает список целых чисел, например:
class Math(object):
def __init__(self, *args, **kwargs):
assert(all([isinstance(item, int) for item in list(args)]))
self.list = list(args)
def add_one(self):
for index in range(len(self.list)):
self.list[index] += 1
И я хочу сделать что-то вроде этого:
instance = Math(1,2,3,4,5)
instance[2:4].add_one()
После выполнения этого кода instance.list
должно быть [1,2,4,5,5]
, возможно ли это?
Я знаю, что мог бы сделать что-то вроде add_one(2,4)
, но это не тот стиль API, который мне бы хотелось иметь, если это возможно.
Спасибо