[Python-Dev] Question about dictobject.c:lookdict_string (original) (raw)
Eyal Lotem eyal.lotem at gmail.com
Tue Jun 12 15:22:15 CEST 2007
- Previous message: [Python-Dev] Question about dictobject.c:lookdict_string
- Next message: [Python-Dev] Santa Fe Python Day report
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 6/11/07, Carl Friedrich Bolz <cfbolz at gmx.de> wrote:
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. Ah, thanks for clarification.
But doesn't it make sense to only revert that single lookup, and not modify the function ptr until the dict contains a non-string?
Eyal
- Previous message: [Python-Dev] Question about dictobject.c:lookdict_string
- Next message: [Python-Dev] Santa Fe Python Day report
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]