Python 变量赋值的本质 (垃圾回收机制)

发布时间 2023-08-30 12:47:05作者: 勋勋的大宝贝

 开始变量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没有变量指向了,那就会被当做垃圾处理掉。