Message 392324 - Python tracker (original) (raw)

That is as intended, right?

On Thu, Apr 29, 2021 at 07:59 STINNER Victor <report@bugs.python.org> wrote:

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

check_set_special_type_attr() is used to prevent setting the following attributes:

Right now, I cannot set the attribues on array.array type:

$ ./python Python 3.10.0a7+ (heads/debug_doc2-dirty:0623fdb60d, Apr 29 2021, 12:06:18)

import array

array.array.name = 'newname' TypeError: can't set attributes of built-in/extension type 'array.array'

array.array.qualname = 'newname' TypeError: can't set attributes of built-in/extension type 'array.array'

array.array.module = 'new module' TypeError: can't set attributes of built-in/extension type 'array.array'

array.array.bases = (int,) TypeError: can't set attributes of built-in/extension type 'array.array'

array.array.doc = 'doc' TypeError: can't set attributes of built-in/extension type 'array.array'

I guess that type_setattro() is used and it checks for Py_TPFLAGS_IMMUTABLETYPE flag early.



Python tracker <report@bugs.python.org> <https://bugs.python.org/issue43908>


-- --Guido (mobile)