[Python-Dev] PEP 455: TransformDict (original) (raw)

Steven D'Aprano steve at pearwood.info
Mon Oct 7 23:24:31 CEST 2013


On Fri, Oct 04, 2013 at 11:06:15PM +0200, Victor Stinner wrote:

(If we cannot find a better name, we may add more specialized classes: KeyInsensitiveDict and IdentiyDict. But I like the idea of using my own "transform" function.)

-1 on a plethora of specialised dicts.

I do think that a TransformDict seems useful, and might even be useful, but would not like to see a whole pile of specialised dicts added to the std lib.

I wonder though, are we going about this the wrong way? Since there is apparently disagreement about TransformDict, that suggests that perhaps we need more concrete experience with the basic idea before graduating to a concrete class in the std lib. Perhaps we should follow the example of dict, missing and defaultdict. The dict class could do something like this on key access:

if type(self) is not dict: # This only applies to subclasses, not dict itself. try: transform = type(self).transform except AttributeError: pass else: key = transform(key)

now use the key as usual

Am I barking up the wrong tree? Would this slow down dict access too much?

-- Steven



More information about the Python-Dev mailing list