
[Guido]
Yes, this is a good thing. Easy to do on lists and dicts. Questions:
- How to spell it? x.freeze()? x.readonly()?
See below.
- Should this reversible?
Of course. Or x.freeze(solid=1) to default to permanent rigidity, but not require it.
I.e. should there be an x.unfreeze()?
That conveniently answers the first question, since x.unreadonly() reads horribly <wink>.
- Should we support something like this for instances too? Sometimes it might be cool to be able to freeze changing attribute values...
"Should be" supported for every mutable object. Next step: as in endless C++ debates, endless Python debates about "representation freeze" vs "logical freeze" ("well, yes, I'm changing this member, but it's just an invisible cache so I *should* be able to tag the object as const anyway ..."; etc etc etc). keep-it-simple-ly y'rs - tim