class MySquare:
def __init__(self, data):
self.data = data
def __call__(self):
return self
def __iter__(self):
return iter(self.data)
def __getitem__(self, index):
return self.data[index]
def __len__(self):
return len(self.data)
def __setitem__(self, index, value):
self.data[index] = value
def __delitem__(self, index):
del self.data[index]
def __del__(self):
del self.data
def __next__(self):
return next(self.data)
def __contains__(self, item):
return item in self.data
def __reversed__(self):
return reversed(self.data)
def index(self, value):
return self.data.index(value)
def count(self, value):
return self.data.count(value)
def __str__(self):
return "MySquare({})".format(self.data)
def __repr__(self):
return "MySquare({})".format(self.data)
if __name__ == '__main__':
obj = MySquare("a")