New assignmens ...

Paulo da Silva p_d_a_s_i_l_v_a_ns at
Fri Oct 22 21:10:51 EDT 2021

Às 20:34 de 22/10/21, Chris Angelico escreveu:
> On Sat, Oct 23, 2021 at 6:24 AM Jon Ribbens via Python-list
> <python-list at> wrote:
>> On 2021-10-22, Stefan Ram <ram at> wrote:
>>> Paulo da Silva <p_d_a_s_i_l_v_a_ns at> writes:
>>>> Why doesn't this work
>>>>      if (self.ctr:=self.ctr-1)<=0:
>>>> while this works
>>>>      if (ctr:=ctr-1)<=0:
>>>   assignment_expression ::=  [identifier ":="] expression,
>>>   but the attribute references "self.ctr" is no identifier!
>> This seems a surprising omission. You'd expect at least 'attributeref'
>> and 'subscription' to be allowed, if not the whole of 'target'.
> That's not the primary use-case for assignment expressions, and they
> were highly controversial. It is much easier to expand it afterwards
> than to restrict it, or to have the feature rejected because people
> are scared of some small aspect of it.
> If you want to propose relaxing the restrictions, make your use-case
> and attempt to convince people of the value.
Well, I didn't follow the discussion of this new feature, but the reason
I can see behind allowing it seems so valid for for ctr:=ctr-1 as for
self.ctr:=self.ctr-1. The kind of use is exactly the same. One is for a
normal function, the other for a method.
IMHO this makes no sense at all. Arguable may be for example LHS
ctrs[i], or something like that. But self.ctr ...! Too weird.


More information about the Python-list mailing list