<div dir="ltr">Okay, that makes sense, but why isn't __missing__ in UserDict?  </div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 5, 2016 at 6:04 PM Guido van Rossum <<a href="mailto:guido@python.org">guido@python.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">What kind of question is that? If you subclass MutableMapping the<br>
whole feature doesn't exist (since you're not subclassing dict). It<br>
*only* exists for subclasses of dict.<br>
<br>
On Tue, Jul 5, 2016 at 12:18 PM, Neil Girdhar <<a href="mailto:mistersheik@gmail.com" target="_blank">mistersheik@gmail.com</a>> wrote:<br>
> But neither UserDict nor MutableMapping defines __missing__ ?  What is a<br>
> subclasser supposed to do?<br>
><br>
> On Wednesday, June 29, 2016 at 4:59:03 PM UTC-4, Guido van Rossum wrote:<br>
>><br>
>> UserDict is superseded by MutableMapping.<br>
>><br>
>> I don't think we should make dict a kitchen sink class. I also don't<br>
>> think we should particularly encourage subclassing it. So -1 on adding<br>
>> dict.__missing__.<br>
>><br>
>> On Wed, Jun 29, 2016 at 12:30 PM, Ethan Furman <<a href="mailto:et...@stoneleaf.us" target="_blank">et...@stoneleaf.us</a>> wrote:<br>
>> > On 06/29/2016 12:09 PM, Guido van Rossum wrote:<br>
>> ><br>
>> >> So providing the comprehensive base class is up to the user, not up to<br>
>> >> the stdlib. Is that such a big deal?<br>
>> ><br>
>> ><br>
>> > No, it's not.  But it makes for a better user experience if the base<br>
>> > class<br>
>> > has the __missing__ method that raises a KeyError already.<br>
>> ><br>
>> > Didn't we add a UserDict that could be subclassed primarily because<br>
>> > subclassing dict directly was such a poor user experience?<br>
>> ><br>
>> > If adding __missing__ to dict is huge (performance hit?), we don't do<br>
>> > it.<br>
>> > If it's not, I think we should.  Maybe add it to UserDict if performance<br>
>> > is<br>
>> > a concern?<br>
>> ><br>
>> ><br>
>> > --<br>
>> > ~Ethan~<br>
>> > _______________________________________________<br>
>> > Python-ideas mailing list<br>
>> > <a href="mailto:Python...@python.org" target="_blank">Python...@python.org</a><br>
>> > <a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
>> > Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
>><br>
>><br>
>><br>
>> --<br>
>> --Guido van Rossum (<a href="http://python.org/~guido" rel="noreferrer" target="_blank">python.org/~guido</a>)<br>
>> _______________________________________________<br>
>> Python-ideas mailing list<br>
>> <a href="mailto:Python...@python.org" target="_blank">Python...@python.org</a><br>
>> <a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
>> Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
<br>
<br>
<br>
--<br>
--Guido van Rossum (<a href="http://python.org/~guido" rel="noreferrer" target="_blank">python.org/~guido</a>)<br>
</blockquote></div>