title: Python overloading multiple getitems / index requests
body: <p>I have a <code>Grid</code> class which I want to access using <code>myGrid[1][2]</code>. I know I can overload the first set of square brackets with the <code>__getitem__()</code> method, but what about the second.</p>
  
  <p>I thought I could achieve this by having a helper class which also implements <code>__getitem__</code> and then:</p>
  
  <pre><code>class Grid:
  
      def __init__(self)
          self.list = A TWO DIMENSIONAL LIST       
  
      ...
  
      def __getitem__(self, index):
          return GridIndexHelper(self, index)
  
  class GridIndexHelper:
  
      def __init__(self, grid, index1):
          self.grid = grid
          self.index1 = index1
  
      ....
  
      def __getitem__(self, index):
          return self.grid.list[self.index1][index]
  </code></pre>
  
  <p>This seems a little too homebrewed... What is the python way to achieve this?</p>