[Python-Dev] Caching tuple hashes
Andrew Bennetts
andrew-pythondev at puzzling.org
Mon Aug 4 19:14:15 EDT 2003
More information about the Python-Dev mailing list
Mon Aug 4 19:14:15 EDT 2003
- Previous message: [Python-Dev] Caching tuple hashes
- Next message: [Python-Dev] Caching tuple hashes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Aug 04, 2003 at 02:51:29AM -0400, Raymond Hettinger wrote: > Strings save their hash values to avoid recomputation in subsequent > hashings. In contrast, tuples recompute on every call. I've googled > around and cannot find the rationale for this. Some ideas are: > > * the time to initialize and check the hash fields isn't repaid on average > * it isn't worth an extra structure field for storing the hash value > * C code can mutate immutables so there is a safety risk > * nobody ever thought of it (unlikely) or got around to it (more likely). Perhaps this: * Tuples can contain badly-behaved mutables, e.g.: >>> class X: ... x = 1 ... def __hash__(self): ... return self.x ... >>> x = X() >>> t = (x,) >>> hash(t) -1660579480 >>> X.x = 2 >>> hash(t) -1660579477 -Andrew.
- Previous message: [Python-Dev] Caching tuple hashes
- Next message: [Python-Dev] Caching tuple hashes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list