ich habe ein Dictionary, das mehrere Dictionaries enthält und will auf dessen
Elemente direkt zugreifen können. Dazu habe ich eine Subklasse von dict
geschrieben, die wie folgt aussieht:
Code: Alles auswählen
class MultiDict(dict):
def multiget(self, keys, default=None):
subtree = self
for k in keys:
try:
subtree = subtree.get(k)
except AttributeError:
# kein Attribut 'get' im Subtree
return default
except TypeError:
# get ist kein callable oder erwartet
# andere Parameter
return default
return subtree
Code: Alles auswählen
In [4]: mydict
Out[4]: {'foo': {'bar': 'baz'}, 'qux': 'quux'}
In [5]: md = MultiDict(mydict)
In [6]: md.multiget(['foo', 'bar'])
Out[6]: 'baz'
In [7]: md.multiget(['qux'])
Out[7]: 'quux'
In [8]: print(md.multiget(['qux', 'quux']))
None
(z.B. enthaltene Dictionaries haben diese Eigenschaft auch)?
Welche Probleme seht ihr mit dieser Implementierung?