This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author rhettinger
Recipients Arfrever, eltoder, eric.snow, ncoghlan, njs, rhettinger, trent
Date 2017-12-10.19:08:38
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1512932918.91.0.213398074469.issue24991@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2017-12-10 19:08:38rhettingersetrecipients: + rhettinger, ncoghlan, trent, Arfrever, njs, eltoder, eric.snow
2017-12-10 19:08:38rhettingersetmessageid: <1512932918.91.0.213398074469.issue24991@psf.upfronthosting.co.za>
2017-12-10 19:08:38rhettingerlinkissue24991 messages
2017-12-10 19:08:38rhettingercreate