全局变量,是不是以为着在整个程序中的值都是一样的,是不是都是同一个呢?
我们通过下面的例子来看全局"变量之变”
上面的程序运行结果如下:
从上面的运行结果可以看出:尽管变量num被声明为全局变量,在每一个子程序运行时,它还是分别被deepcopy了一次,成为了全新的变量,在经过+5 和+10之后,又生成了新的变量和变量值。只有在子程序之外的全局变量num在程序运行之处为1,在子程序运行之后,主程序中的全局变量num仍然为1,并且它的id值都是一样的,说明它是同一个内存变量。
从什么的程序中,我们可以深刻理解全局变量在程序不同位置的不同。
亲爱的你,看明白了么?
特别提醒:即便是同样的程序,每次运行时,内存ID都是不一样的,说明,程序在每一次运行时,都启用了全新的内存空间。
又一次运行同一个程序的运行结果: