[Python-ideas] Wild idea about mutability

Joao S. O. Bueno jsbueno at python.org.br
Thu Jun 2 10:18:45 EDT 2016


Just remembering that one is free to implement whatever "switchable"
containers one wants in the language as it is now - no need to force
(full or slightly) incompatible  changes that imply on performance
degradation onto every single Python user for a feature that was not
needed up to this day.

Implementing this in  sequence-abc, and mapping-abc classes is trivial.

A reasonable request for the language could be exactly to allow a
"__mutable__" property on the sequence, container and mapping
protocols, and a "mutable" built-in callable, that in the absence of
"__mutable__" could check for the methods signature (if it does not
have "__mutable__" but has "__setitem__" , then mutable(obj) returns
True, for example).


On 2 June 2016 at 10:55, Sven R. Kunze <srkunze at mail.de> wrote:
> On 02.06.2016 15:05, Rob Cliffe wrote:
>>
>> Sure, there are many difficulties.
>> This was intended to be a blue-sky idea.  I would like to pose the
>> question "If I had to redesign Python from scratch, would I think this is a
>> good idea?"
>
>
> I don't think that's an overly stupid idea. In such regard, Python wouldn't
> be the first project dealing with mutability in this manner. PostgreSQL
> already does.
>
> One question I would have: would it be enforced? Or can objects designer
> choose between enforced immutability and informative immutability? Or would
> it be enforced inconsistently at some places where at other places it does
> not matter.
> To me the 100% enforced variant would be the least troublesome.
>
> One definite advantage of broader use of immutable objects would be
> optimization: using the same memory parts, re-using the same object etc.
> It's not my field in computer science but other people will be able to
> imagine a lot of other possibilities here.
>
> Best,
> Sven
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/


More information about the Python-ideas mailing list