__slots__ in derived class

Schüle Daniel uval at rz.uni-karlsruhe.de
Wed Mar 15 13:57:18 CET 2006


Hello,

consider this code

 >>> class A(object):
...     def __init__(self):
...             self.a = 1
...             self.b = 2
...
 >>> class B(A):
...     __slots__ = ["x","y"]
...
 >>> b=B()
 >>> b.a
1
 >>> b.b
2
 >>> b.x = 100
 >>> b.y = 100
 >>> b.z = 100

no exception here
does __slots__ nothing when used in derived classes?


 >>>
 >>>
 >>> class Z(object):
...     __slots__ = ["x","y"]
...
 >>> z=Z()
 >>> z.x = 100
 >>> z.y = 100
 >>> z.z = 100
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
AttributeError: 'Z' object has no attribute 'z'
 >>>

here it works like expected

Regards, Daniel




More information about the Python-list mailing list