On 06/29/2016 10:47 AM, Matt Gilson wrote:
The following code raises an `AttributeError`:
class D(dict): ... def __missing__(self, k): ... super(D, self).__missing__(k) ... d = D() d['key'] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in __missing__ AttributeError: 'super' object has no attribute '__missing__'
I find this behavior to be a little bit odd as I would have expected the default implementation to have a `__missing__` method and I would expect the `__missing__` method to raise an appropriate `KeyError`. I think that this would facilitate a class hierarchy where each class can decide "I don't know hot to handle this missing key, maybe something further up the MRO does".
+1 -- ~Ethan~