On 25/10/2021 01:46, Avi Gross via Python-list wrote:
No, many things need not be as general as possible once you consider how
much work it may take to develop code and how many bugs and oddities might
be introduced and even how much it may slow the interpreter.
...
I imagine you can create some fairly complex examples you can suggest should
be handled for generality including some very indirect references created
dynamically. The code to recognize any abstract use of symbols may not only
slow down every operation of even the simplest type but generate all kinds
of error messages nobody will understand, let alone translate into other
languages properly! Right now, it is simpler. An error message can say that
only certain simple usages are allowed.

I don't consider this a strong argument. Limiting the scope of the walrus 
operator
will just force people organizing there code where they will use a normal 
assignment.
So the resulting code will not be faster, less complex or generate less error 
messages
because the complexity of the assignment that is needed is still the same.

Or you force people to be "creative" as follows:

Suppose I would like to write a loop as follows:

    while ((a, b) := next_couple(a, b))[1]:
        do needed calculations


What I can do is write it as follows:

    while [tmp := next_couple(a,b), a := tmp[0], b := tmp[1]][-1]:
        do needed calculations

I really don't see what is gained by "forcing" me to right the second code over 
the first.

--
Antoon Pardon

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to