Python 变量赋值的本质 (垃圾回收机制)
开始变量a指向10的内存空间,之后指向20的内存空间,10的内存空间没有变量指向后,变为垃圾,就会被垃圾回收机制回
a = 10 print(id(a)) # 内存地址:140720318571592
a = 20 print(id(a)) # 内存地址:140720318571912
a=10在内存中具体干了什么事情?
a=10 首先在内存中开辟了一块内存空间,把数字10放进去,由变量a指向这块空间。
python垃圾回收机制:当一块内存空间没有任何变量指向的时候,就会被作为垃圾回收掉。
当a=20,在内存中开辟一个块内存空间,将数字20放进去,再将变量a指向这块空间。python不像C语言一样(C语言是将20放入10的内存空间,不重新开辟一块新内存空间),Python而是开辟一个新的空间。
这时10没有变量指向了,那就会被当做垃圾处理掉。