Overwriting property-> can't set attribute

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Tue Aug 26 06:34:48 EDT 2008


Gregor Horvath a écrit :
> Hi,
> 
> why is this code failing?
> 
> class B(object):
>     pass
> 
> B.testattr = property(lambda s:"hallo")
> b = B()
> b.testattr = "test"
> 
> 
> Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
> 
> /tmp/python-14202ViU.py in <module>()
>      14 B.testattr = property(lambda s:"hallo")
>      15 b = B()
> ---> 16 b.testattr = "test"
>      17
>      18
> 
> <type 'exceptions.AttributeError'>: can't set attribute
> 

It's not failing, it's doing exactly what's expected. You made testattr 
a read-only property by not providing a setter.



More information about the Python-list mailing list