Message307971
I think this is a hazardous path that should be avoided. Mutability is an elusive concept that is hard to pin down.
Files are immutable when opened in a read-only mode and mutable if opened in a write mode. Tuples are immutable but may contain mutable elements. Tuples are immutable to Python programmers but fully mutable to C programmers. Some objects have some fields than can be mutated and some that can't. Regular Python classes are always mutable in the sense that there is usually some path to changing almost everything even if __setattr__ has been overridden. It is more a matter of convention (public API) than a technical point.
I prefer that Python be left as a "consenting adults" language rather than go down this precarious path. For comparison, think about the issue of constants in Python. A constant is just a variable that by convention you don't change. It isn't declared or enforced, yet for the most part this is just fine. |
|
Date |
User |
Action |
Args |
2017-12-10 19:08:38 | rhettinger | set | recipients:
+ rhettinger, ncoghlan, trent, Arfrever, njs, eltoder, eric.snow |
2017-12-10 19:08:38 | rhettinger | set | messageid: <1512932918.91.0.213398074469.issue24991@psf.upfronthosting.co.za> |
2017-12-10 19:08:38 | rhettinger | link | issue24991 messages |
2017-12-10 19:08:38 | rhettinger | create | |
|