syntax difference

Steven D'Aprano steve+comp.lang.python at pearwood.info
Tue Jun 19 11:31:44 EDT 2018


On Tue, 19 Jun 2018 11:52:22 +0100, Bart wrote:

> On 19/06/2018 11:33, Steven D'Aprano wrote:
>> On Tue, 19 Jun 2018 10:19:15 +0100, Bart wrote:
>> 
>>> * Swap(x,y) (evaluate each once unlike a,y=y,x)
>> 
>> Sigh. Really? You think x,y = y,x evaluates x and y twice?
> 
> Yes.

Well, you would be wrong.

[steve at ando ~]$ python3.5 -c "import dis; dis.dis('x, y = y, x')"
  1           0 LOAD_NAME                0 (y)
              3 LOAD_NAME                1 (x)
              6 ROT_TWO
              7 STORE_NAME               1 (x)
             10 STORE_NAME               0 (y)
             13 LOAD_CONST               0 (None)
             16 RETURN_VALUE


> Try:
[snip complex example]

Why would I try that? You made a claim that x, y = y, x evaluates x and y 
twice. You didn't say anything about calling a function twice. Of course 
if you call a function twice, the function gets called twice. What does 
your language do?

Shifting the goals posts is not a nice thing to do Bart. You made a claim 
about swapping two named variables, not one about multiple function calls.




-- 
Steven D'Aprano
"Ever since I learned about confirmation bias, I've been seeing
it everywhere." -- Jon Ronson




More information about the Python-list mailing list