On Tue, Nov 12, 2013 at 8:12 PM, Frank-Rene Schäfer <fsch...@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 -- https://mail.python.org/mailman/listinfo/python-list