[Python-Dev] Question about dictobject.c:lookdict_string (original) (raw)

Carl Friedrich Bolz cfbolz at gmx.de
Mon Jun 11 17:23:10 CEST 2007


Eyal Lotem wrote:

My question is specifically regarding the transition back from lookdictstring (the initial value) to the general lookdict.

Currently, when a string-only dict is trying to look up any non-string, it reverts back to a general lookdict. Wouldn't it be better (especially in the more important case of a string-key-only dict), to revert to the generic lookdict when a non-string is inserted to the dict, rather than when one is being searched? [...] This does not seem like a significant issue, but as I know a lot of effort went into optimizing dicts, I was wondering if I am missing something here.

Yes, you are: when doing a lookup with a non-string-key, that key could be an instance of a class that has hash and eq implementations that make the key compare equal to some string that is in the dictionary. So you need to change to lookdict, otherwise that lookup might fail.

Cheers,

Carl Friedrich Bolz



More information about the Python-Dev mailing list