title: Possibilities when trying to access an instance attribute?
body: <p>I would like to find an exhaustive lookup operations made by the Python interpreter when trying to access an instance attribute or setting it to a new value.</p>
  
  <p>I know several things about it by reading and experimenting:</p>
  
  <ul>
  <li>When there is a <code>property</code> or a descriptor in the class body, it's used before anything</li>
  <li>When there is the same attribute (with the same name I mean) in the <code>__dict__</code> of the instance and the <code>__dict__</code> of the class, the instance's one is used first</li>
  <li>When the <code>__gettatribute__</code> and the <code>__getattr__</code> are both define in the class body, <code>__gettatribute__</code> is used first since <code>__getattr__</code> is only being called when the attribute isn't found elsewhere</li>
  </ul>
  
  <p>But I was wondering about some limit cases...
  Can somebody give a explanation of all possibilities? </p>