'isimmutable' and 'ImmutableNester'
Chris Angelico
rosuav at gmail.com
Tue Nov 12 04:21:00 EST 2013
On Tue, Nov 12, 2013 at 8:12 PM, Frank-Rene Schäfer <fschaef at gmail.com> wrote:
> (1) hash()-ability != immutability (!)
>
> Proof:
>
> class X:
> def __hash__(self): return 0
>
x == y != y == x
Proof:
class X:
def __eq__(self,other): return True
class Y:
def __eq__(self,other): return False
All you've done is proven that you can subvert things. By fiddling
with __hash__, __eq__, and so on, you can make sets and dicts behave
very oddly. Means nothing.
Fundamentally, your mutability check is going to need some form of
assistance from user-defined classes. That means a class can break
your rules.
ChrisA
More information about the Python-list
mailing list