New assignmens ...

Chris Angelico rosuav at
Fri Oct 22 15:34:59 EDT 2021

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.


More information about the Python-list mailing list