Return value of an assignment statement?

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Sun Feb 24 03:03:56 EST 2008


On Sat, 23 Feb 2008 22:44:30 +0000, Tim Roberts wrote:

> Marc 'BlackJack' Rintsch <bj_666 at gmx.net> wrote:
> 
>>On Fri, 22 Feb 2008 11:00:17 -0800, Aahz wrote:
>>
>>> It's just too convenient to be able to write
>>> 
>>> L += ['foo']
>>> 
>>> without rebinding L.
>>
>><nitpick>But ``+=`` does rebind.</nitpick>
> 
> Usually, but there's an exception for lists, which a specific
> implementation for += that calls "append".  Or do I misunderstand you?

Terry Reedy showed the "tuple proof", here's the read only property case::

 class A(object):
     def __init__(self):
         self._data = list()
    
     @property
     def data(self):
         return self._data

 a = A()
 a.data += [42]

Output::

 Traceback (most recent call last):
   File "test.py", line 25, in <module>
     a.data += [42]
 AttributeError: can't set attribute

Ciao,
	Marc 'BlackJack' Rintsch



More information about the Python-list mailing list