python中的变量与对象

在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时,即没有变量引用时,该对象被回收释放内存空间。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值