New submission from Nick Coghlan:

Issue #24912 showed that the interpreter has historically assumed that all 
instances of non-heap types are immutable when it comes to preventing __class__ 
reassignment, and changing this assumption caused problems with genuinely 
immutable types that use implicit instance caching (like string interning and 
the small integrer cache).

More generally, whether or not type instances are mutable or not has been 
defined somewhat informally - decimal.Decimal instances, for example, are 
nominally immutable, but this immutability is only by convention, rather than 
enforced by the interpreter.

It may be desirable to be able to explicitly declare instances of a type as 
mutable or immutable (both from Python and from C), rather than having that 
property be inferred from other characteristics in a situational way.

----------
messages: 249605
nosy: ncoghlan, njs
priority: normal
severity: normal
status: open
title: Define instance mutability explicitly on type objects
versions: Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue24991>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to