11 Sep
2013
11 Sep
'13
9:52 a.m.
Le Wed, 11 Sep 2013 12:38:13 +0300,
Serhiy Storchaka
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.