Message 249345 - Python tracker
Well, yeah, that indeed sucks. Not sure what the best solution is. Some options: 1) "Don't do that then" 2) Explicitly add a "__class__" property to every immutable type, that unconditionally errors out on assignment. 3) Add a hack to typeobject.c checking for the important immutable types 4) Something cleverer...? A new type flag? The immutable types are: int, float, str, tuple, bool, frozenset, complex, bytes, and... anything else?