STINNER Victor <vstin...@python.org> added the comment:

Guido:
> 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.

*Many* static types have been converted to heap types in Python 3.9 and Python 
3.10. Is there a rule to decide which types should be mutable or not?

All types implemented in Python are mutable, unless the very few which use 
slots.

By the way, some cases can be inherited or not. Do we care about that?

Example:

$ python3
Python 3.9.2 (default, Feb 20 2021, 00:00:00) 
>>> def f(): pass
... 
>>> class MyFuncType(type(f)): pass
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: type 'function' is not an acceptable base type

----------

_______________________________________
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

Reply via email to