class Ring:
def __init__(self, l):
if not len(l):
raise "ring must have at least one element"
self._data = l
def __repr__(self):
return repr(self._data)
def __len__(self):
return len(self._data)
def __getitem__(self, i):
return self._data[i]
def turn(self):
last = self._data.pop(-1)
self._data.insert(0, last)
def first(self):
return self._data[0]
def last(self):
return self._data[-1]