title: Python: how does a dict with mixed key type work?
body: <p>I understand that the following is valid in Python: <code>foo = {'a': 0, 1: 2, some_obj: 'c'}</code></p>
  
  <p>However, I wonder how the internal works. Does it treat everything (object, string, number, etc.) as object? Does it type check to determine how to compute the hash code given a key?</p>