New submission from Guido van Rossum <gu...@python.org>:
Hi Victor, Sorry for making this a deferred blocker. I recall that we had a brief discussion somewhere about an accidental change to the array.array type -- this is now a heap type (Py_TPFLAGS_HEAPTYPE is set), and as a consequence it is no longer immutable. In 3.9 this is an error: >>> import array >>> array.array.foo = 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can't set attributes of built-in/extension type 'array.array' >>> But in 3.10a7 it passes: >>> array.array.foo = 1 >>> array.array.foo 1 >>> I would like this type (and other types that have been or will be converted to heap types) to remain immutable. How can we do that? I think we may need a new flag bit meaning "built-in type, immutable". This bit should not be inherited of course. What do you think? (Feel free to close if this is a duplicate -- I couldn't find where we discussed this previously, sorry.) ---------- assignee: vstinner messages: 391540 nosy: gvanrossum, vstinner priority: deferred blocker severity: normal status: open title: array.array should remain immutable type: behavior versions: Python 3.10, Python 3.11 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue43908> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com