level 6
YS易小唐
楼主
在python中,一切变量都是对象的引用,举个例子:
a=3
内部执行过程如下图:

如图所示,python内部分为3个步骤完成a=3的赋值操作:
1.创建变量a
2.创建一个对象(分配一块内存)存储值3
3.将变量与对象通过指针连接起来
基于此内部机制,故python在定义变量的时候无需先声明变量的类型,变量类型是在运行过程中根据对象类型自动决定的,在过程中可以改变变量的类型即使变量引用不同类型的对象即可
例如:
a=3 #整型
a='sean' #字符串型
a=3.14 #浮点型
在此例中变量a分别引用整型对象3、字符串型对象sean、浮点型对象3.14
由此可总结出,变量没有类型,类型是属于对象的。
既然对象有类型,那么对象又是如何保存类型的呢?下面说明一下对象的详细结构。
对象结构如下图:

如图所示,对象结构分为三个部分,存值区,类型标志符和计数器。类型标志符(严格意义上它是一个指向int对象的指针)标记了这个对象的类型。
值得注意的是计数器部分,计数器数值记录了引用该对象的变量数,当计数器值为0时,即没有变量引用时,该对象被回收释放内存空间。
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。
2021年02月22日 07点02分
1
a=3
内部执行过程如下图:

如图所示,python内部分为3个步骤完成a=3的赋值操作:1.创建变量a
2.创建一个对象(分配一块内存)存储值3
3.将变量与对象通过指针连接起来
基于此内部机制,故python在定义变量的时候无需先声明变量的类型,变量类型是在运行过程中根据对象类型自动决定的,在过程中可以改变变量的类型即使变量引用不同类型的对象即可
例如:
a=3 #整型
a='sean' #字符串型
a=3.14 #浮点型
在此例中变量a分别引用整型对象3、字符串型对象sean、浮点型对象3.14
由此可总结出,变量没有类型,类型是属于对象的。
既然对象有类型,那么对象又是如何保存类型的呢?下面说明一下对象的详细结构。
对象结构如下图:

如图所示,对象结构分为三个部分,存值区,类型标志符和计数器。类型标志符(严格意义上它是一个指向int对象的指针)标记了这个对象的类型。值得注意的是计数器部分,计数器数值记录了引用该对象的变量数,当计数器值为0时,即没有变量引用时,该对象被回收释放内存空间。
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。