The code below:
class A(object):
__slots__ = 'a'
def __init__(self, a):
self.a = a
print (A(4).a) # 4
class B(A):
a = 4
__slots__ = 'b'
B(4)
blows with:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<input>", line 4, in __init__
AttributeError: 'B' object attribute 'a' is read-only
I don't understand this behavior - how does this make 'a' read only? Can I make this work somehow?