[Python-ideas] Support other dict types for type.__dict__
Eric Snow
ericsnowcurrently at gmail.com
Tue Feb 28 00:48:29 CET 2012
More information about the Python-ideas mailing list
Tue Feb 28 00:48:29 CET 2012
- Previous message: [Python-ideas] Support other dict types for type.__dict__
- Next message: [Python-ideas] Support other dict types for type.__dict__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Feb 27, 2012 at 12:18 PM, Eric Snow <ericsnowcurrently at gmail.com> wrote: > On Mon, Feb 27, 2012 at 11:45 AM, Mark Janssen > <dreamingforward at gmail.com> wrote: >> On Mon, Feb 27, 2012 at 11:35 AM, Rob Cliffe <rob.cliffe at btinternet.com> wrote: >>> I suggested a "mutable" attribute some time ago. >>> This could lead to finally doing away with one of Python's FAQs: Why does >>> python have lists AND tuples? They could be unified into a single type. >>> Rob Cliffe. >> >> Yeah, that would be cool. It would force (ok, *allow*) the >> documenting of any non-mutable attributes (i.e. when they're mutable, >> and why they're being set immutable, etc.). >> >> There an interesting question, then, should the mutable bit be on the >> Object itself (the whole type) or in each instance....? There's >> probably no "provable" or abstract answer to this, but rather just an >> organization principle to the language.... > > In contrast to a flag on objects, one alternative is to have a > __mutable__() method for immutable types and __immutable__() for > mutable types. I'd be nervous about being able to make an immutable > object mutable at an arbitrary moment with the associated effect on > the hash of the object. Just to be clear, I meant that __mutable__() would return a mutable version of the object, of a distinct mutable type, if the object supported one. So for a tuple, it would return the corresponding list. These would be distinct objects. Likewise obj.__immutable__() would return a separate, immutable version of obj. Such an approach could be applied to lists/tuples, sets/frozensets, strings/bytearrays, bytes/bytearrays, and any other pairings we already have. Unless a frozendict were added as a standard type, dict would not have a match so an __immutable__() method would not be added. In that case, trying to call dict.__immutable__() would be an AttributeError, as happens now. -eric
- Previous message: [Python-ideas] Support other dict types for type.__dict__
- Next message: [Python-ideas] Support other dict types for type.__dict__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list