New assignmens ...

O365 Dict antoon.pardon at vub.be
Sun Oct 24 05:23:48 EDT 2021


Op 23/10/2021 om 03:22 schreef Stefan Ram:
> Paulo da Silva <p_d_a_s_i_l_v_a_ns at nonetnoaddress.pt> writes:
>> 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.
>   The intention of the introduction of the assignment expression
>   was to allow grab the values of subexpressions so as to be able
>   to later use these value. This can be done with an identifier:
>
> if env_base := os.environ.get( "PYTHONUSERBASE", None ):
>     return env_base
>
>   . I am wondering what use cases are there for having something
>   different than an identifier on the left side.

Well I have the following use case:

    while (temp_result := calculate_next_couple(a, b))[1]:
        a, b = temp_result
        more calculations

Which IMO would be clearer if I could just write:

    while ((a, b) := calculate_next_couple(a,b))[1]:
        more calculations

Of course it would even more clear if I could write something like:

    while (a, b) := calculate_next_couple(a, b); b:
        more calculations

or

    do:
        a, b = calculate_next_couple(a, b)
    while b:
        more calculations

-- 
Antoon.



More information about the Python-list mailing list