On 15/01/2014 01:27, Steven D'Aprano wrote:
Over on the Python-Dev mailing list, there is an ENORMOUS multi-thread
discussion involving at least two PEPs, about bytes/str compatibility.
But I don't want to talk about that. (Oh gods, I *really* don't want to
talk about that...)

+ trillions


In the midst of that discussion, Guido van Rossum made a comment about
subclassing dicts:

     [quote]
     From: Guido van Rossum <gu...@python.org>
     Date: Tue, 14 Jan 2014 12:06:32 -0800
     Subject: Re: [Python-Dev] PEP 460 reboot

     Personally I wouldn't add any words suggesting or referring
     to the option of creation another class for this purpose. You
     wouldn't recommend subclassing dict for constraining the
     types of keys or values, would you?
     [end quote]

https://mail.python.org/pipermail/python-dev/2014-January/131537.html

This surprises me, and rather than bother Python-Dev (where it will
likely be lost in the noise, and certain will be off-topic), I'm hoping
there may be someone here who is willing to attempt to channel GvR. I
would have thought that subclassing dict for the purpose of constraining
the type of keys or values would be precisely an excellent use of
subclassing.

Exactly what I was thinking.



class TextOnlyDict(dict):
     def __setitem__(self, key, value):
         if not isinstance(key, str):
             raise TypeError
         super().__setitem__(key, value)
     # need to override more methods too


But reading Guido, I think he's saying that wouldn't be a good idea. I
don't get it -- it's not a violation of the Liskov Substitution
Principle, because it's more restrictive, not less. What am I missing?



Couple of replies I noted from Ned Batchelder and Terry Reedy. Smacked bottom for Peter Otten, how dare he? :)

--
My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language.

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to