
Yes, but A objects have no slots, no dict, do not accept attribute assignment, but are mutable.
a = A() a [] a.__slots__ () a.__dict__ Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'A' object has no attribute '__dict__' a.append(1) a.append(2) a [1, 2]
2017-07-28 20:23 GMT+02:00 Mike Miller <python-ideas@mgmiller.net>:
That's a subclass. Also:
class A(list): __slots__ = () ...
a = A() a.foo = 'bar' Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'A' object has no attribute 'foo'
-Mike
On 2017-07-28 01:06, Antoine Rozo wrote:
If an object has no slots or dict and does not accept attribute assignment, is it not effectively immutable?
No, not necessarily.
class A(list): __slots__ = ()
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
-- Antoine Rozo