[Python-Dev] Add a "transformdict" to collections

Antoine Pitrou solipsis at pitrou.net
Wed Sep 11 11:52:59 CEST 2013


Le Wed, 11 Sep 2013 12:38:13 +0300,
Serhiy Storchaka <storchaka at gmail.com> a écrit :
> 2. Subclassing.
> 
> class CaseInsensitiveDict(TransformDict):
>      def transform(self, key):
>          return key.casefold()
> d = CaseInsensitiveDict(Foo=5)

I thought about this first, and then I remembered that python-dev isn't
generally very keen on subclassing-based APIs :-)

> 3. Type generator.
> 
> d = TransformDict(str.casefold)(Foo=5)
> 
[...]
> 
> Third method allows you to customize other aspects of dict behavior 
> (combine OrderedDict, defaultdict,..).

Well, no, it's not that easy. Especially since OrderedDict and
defaultdict weren't written with combination in mind.

Regards

Antoine.




More information about the Python-Dev mailing list