Python中常量的概念其实是对象的概念(所谓在Python中,万物皆对象),所有的赋值操作都是变量对操作数对象的引用。在Python中,每一个变量都有一个独一无二的id,可以称之为变量地址,用id()方法查看(如图1)。其中右边的字符串可以看作为一个字符串对象,而左边为这个字符串对象的引用。我们现在通过sys.getrefcount()方法来查看第一次引用时,变量内部的引用计数器的初始值为多少(如图2)。此处需要解释一下,一般来说第一次引用它的引用计数器应为1,但此时为2(也会为3或者其他值),原因是程序在执行时可能在内部对它又进行了其他调用(此处不深究这个原因,只要知道在第一次引用的时候引用计数器所显示的值的基础上,每次多一个变量对通一个字符串对象赋值那么这个引用计数器的值就会增1(如图3))反之,执行del方法时,将会删除一个字符串对象的引用,从而该字符串对象的引用计数器也会相应的减1。(如图4)。当该字符串对象的引用计数器变为初始时减1的值时代表这个字符串变量被销毁。
图 1
图 2
图 3
图 4
原文地址:https://www.cnblogs.com/xingzherufeng/p/9248559.html
时间: 2024-10-13 16:34:30