title: How can I use __getitem__ method?
body: <p>with the code below :</p>
  
  <pre><code>class ZDict:
      """Class similar to dict"""
  
      def __init__(self):
          self._dictionnaire = {} # cannot be read from outside
  
      def __getitem__(self, index):
          print("pass by here __getitem__")
          return self._dictionnaire[index]
  
      def __setitem__(self, index, valeur):
          print("pass by here __setitem__")
          self._dictionnaire[index] = valeur
  
      def __delitem__(self, item):
          print("pass by here __delitem__")
          print("User wants item {} deleted".format(item))
  </code></pre>
  
  <p>when I run the following :</p>
  
  <pre><code>dico = ZDict()
  dico = {"pommes":21, "melons":3, "poires" : 31}
  print(dico[31])
  dico[31] = "fraises"
  print(dico[31])
  del dico["melons"]
  print(dico)
  </code></pre>
  
  <p>I get the expected results but without passing by the methods in my ZDict class. There is no print in the results indeed. It seems like Python use methods from dict class and not mine. Do you know why ?</p>
  
  <p>Thanks!  </p>