On 17/11/2016 05:40, Veek M wrote:
In C:
int x = 10;
results in storage being allocated and type and location are fixed for
the life of the program.

In Python,
x = 10

causes an object '10' to be created but how exactly is 'x' handled?
Symbol Table lookup at compile time? Is every 'x' being substituted out
of existence? Because type(x) gives 'int' so..

Try:

 import dis

 def fn():
 |   global x
 |   x=10

 dis.dis(fn)

(I don't know how to disassemble code outside a function, not from inside the same program. Outside it might be: 'python -m dis file.py')

This might show stuff like:

              0 LOAD_CONST               1 (10)
              3 STORE_GLOBAL             0 (x)

So already giving a better idea of what might be going on compared with 'x=10' which is practically the same in any language.

(I'm guessing "x" is looked up at this point, created if it doesn't exist, and associated with the value 'integer 10'.)

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

Reply via email to