[pyar] Como hacer un objeto inmutable

Daniel Moisset dmoisset en machinalis.com
Vie Oct 28 10:42:07 ART 2011


On Fri, Oct 28, 2011 at 10:34 AM, Mariano Guerra
<luismarianoguerra en gmail.com> wrote:
> quiero retruco:
>
>>>> p = ReadOnlyPoint(1,2)
>>>> p.__class__.x = property(lambda self: 4)
>>>> p.x
> 4
>
> como defensa de mi inexistente orgullo, en estos casos no estas
> mutando x, estas mutando el universo :P
>

si, pero va con el enunciado original de "se puede hacer Point
inmutable?" Para mi eso es mantener la identidad pero cambiar las
caracteristicas. Si podes cambiar el __class__, para mi es mutable :)
Y fijate que ese truco va a andar en general para mutar las cosas que
se dieron aca

con tuple o derivados de tuple podes prohibir el cambio de __class__
pero estaban prohibidos... capaz heredando de alguna otra clase
interna (por ej list) podes bloquear esas cosas (porque a una
instancia de tuple o list no le podes setear el __class__

D.



More information about the pyar mailing list