#!/usr/local/bin/python2 #coding:utf-8 import collections class q(collections.MutableSequence): def __init__(self, *items): self._items = list(items) self._compiled_items = list(items) def __repr__(self): return '{}({})'.format(self.__class__.__name__) def __getitem__(self, index): return self._items[index] def __setitem__(self, index, value): self._items[index] = value self._compiled_items[index] = value def __delitem__(self, index): del self._items[index], self._compiled_items[index] def __len__(self): return len(self._items) def insert(self, index, value): self._items.insert(index, value) self._compiled_items.insert(index, value) l = q(1,2,3) l.extend((4,5,6)) l[1] = 'あ' print l, l._compiled_items