Python基础笔记(一)对象、引用及垃圾回收机制

1.Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)

组成。

(1)标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数 id(obj) 可返回对象 obj 的标识。

(2)类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的 操作。可以使用 type(obj)获得对象的所属类型。

(3)值表示对象所存储的数据的信息。使用 print(obj)可以直接打印出值。

对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。

2.引用

 

在 Python 中,变量也成为:对象的引用。因为,变量存储的就是对象的地址。

变量通过地址引用了“对象”。

变量位于:栈内存。

对象位于:堆内存。

从引用的角度,也可以帮助理解Python中变量可以任意赋值的原因了,如下图:

即使a已经被赋值一个整数,单其后续仍可被赋值为一个字符串,因为标识符a只是一个引用,不同的赋值后,a是对不同对象的引用。而对于C语言这样在变量声明之时就确定类型的语言,变量名在其作用域内指向一个固定的地址,因此不能赋值其他数据类型;

3.Python的删除变量及垃圾回收机制:

已经不使用的变量,可以用del删除,释放内存:

但是不会影响引用同一对象的其它变量:

对象的内部有一个引用计数器,记录该对象的引用数目,当引用数目为0时,该对象也会被释放(对这方面知识还不清楚,以后补充)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值