What exactly is a python variable?

BartC bc at freeuk.com
Thu Nov 17 20:34:55 EST 2016


On 18/11/2016 00:47, Steve D'Aprano wrote:
> On Fri, 18 Nov 2016 12:19 am, BartC wrote:
>
>> On 17/11/2016 12:20, Steve D'Aprano wrote:

>>> In the most recent versions of Python, dis.dis() will also accept a
>>> string:
>>>
>>> py> dis.dis('y = x + 1')
>>>   1           0 LOAD_NAME                0 (x)
>>>               3 LOAD_CONST               0 (1)
>>>               6 BINARY_ADD
>>>               7 STORE_NAME               1 (y)
>>>              10 LOAD_CONST               1 (None)
>>>              13 RETURN_VALUE
>>
>>
>> Py2 gave me (for "y=x+1"):
>>
>>            0 SETUP_EXCEPT    30781 (to 30784)
>>            3 STORE_SLICE+3
>>            4 <49>
>>
>> Py3.4 works as you say but after that result I was disinclined to take
>> it further!
>
>
> You may have missed the bit where I said "In the most recent versions".
> Python 2.7 will be interpreting the string "y=x+1" as compiled byte-code,
> and disassembling it into junk.

I did my tests ('dis.dis("x=10")') before your post and before my 
original post. Py2 generated nonsense so I tried something else.

That Py2's dis.dis() accepts a string argument but treats it as compiled 
byte-code sounds like a bug. Unless it's a feature.

-- 
Bartc




More information about the Python-list mailing list