[issue46550] __slots__ updates despite being read-only
Nikita Sobolev
report at bugs.python.org
Thu Jan 27 10:26:29 EST 2022
Nikita Sobolev <mail at sobolevn.me> added the comment:
It does not happen on `3.11` (main):
```
Python 3.11.0a4+ (heads/main-dirty:ef3ef6fa43, Jan 20 2022, 20:48:25) [Clang 11.0.0 (clang-1100.0.33.16)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:
... __slots__ = ('x',)
...
>>> A.__slots__ += ('y',)
>>> A.__slots__
('x', 'y')
>>> a = A()
>>> a.__slots__
('x', 'y')
>>> a.__slots__ += ('z',)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'A' object attribute '__slots__' is read-only
>>> a.__slots__
('x', 'y')
```
It also does not happen on `3.9`:
```
Python 3.9.9 (main, Dec 21 2021, 11:35:28)
[Clang 11.0.0 (clang-1100.0.33.16)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:
... __slots__ = ('x',)
...
>>> a = A()
>>> a.__slots__ += ('y',)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'A' object attribute '__slots__' is read-only
>>> a.__slots__
('x',)
```
----------
nosy: +sobolevn
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue46550>
_______________________________________
More information about the Python-bugs-list
mailing list