2012/10/29 Jean-Michel Pichavant <[email protected]>:
>
>
> In an OOP language num.increment() is expected to modify the object in place.
> So I think you're right when you say that functional languages technics do
> not necessarily apply to Python, because they don't.
>
> I would add that what you're trying to suggest in the first post was not
> really about immutability, immutable objects in python are ... well
> immutable, they can be used as a dict key for instance, your NumWrapper
> object cannot.
>
>
> JM
Yes right immutable was not the right word, I meant that as a contract
with myself I'm never going to modify its state.
Also because how doi I make an immutable object in pure Python?
But the example with the dictionary is not correct though, because this:
In [145]: class C(object):
.....: def __hash__(self):
.....: return 42
.....:
In [146]: d = {C(): 1}
works perfectly, but an object of class C can mutate as much as it
wants, as my NumWrapper instance..
--
http://mail.python.org/mailman/listinfo/python-list