import stacktype # get C type class Stack: def __init__(self, start=None): # wrap | make self._base = start or stacktype.Stack() def __getattr__(self, name): return getattr(self._base, name) # attributes def __cmp__(self, other): return cmp(self._base, other) def __repr__(self): # 'print' print self._base,; return '' def __add__(self, other): # operators return Stack(self._base + other._base) def __mul__(self, n): return Stack(self._base * n) # new Stack def __getitem__(self, i): return self._base[i] # [i],in,for def __len__(self): return len(self._base)