美妙的Python之Python对象
简而言之: Python 是能你无限惊喜的语言,与众不同。
Python对象概念的理解,是理解Python数据存储的前提。Python使用对象来存储数据,构造任何类型的值都是对象。
1.Python 对象:
Python的对象有3个属性:
标识:每个对象都有一个唯一的标识,通过 id( ) 可以查看对象的标识。
类型:对象的类型,指明该对象可以存储的数据类型,通过 type( ) 可查看。
值 :对象存储数据的值。
如:
Python内部的实现机制:a=1,Python先创建一个整形对象,将该整形对象的值设置为1,最后该对象赋给变量a。a=2,Python再创建一个新的整形对象,将该对象的值设置为2,最后将该对象赋给变量a。
Python的内存管理:每个对象都有一个引用计数器,对象赋值给变量名时引用计时器+1,当一个引用销毁时,引用计数器 - 1,当引用计数器为0,也即所有引用都不存在时,系统会销毁这个对象。
2.变量名与对象:
Python基于对象的存储数据机制,变量名与对象的关系不同于C/C++变量名与内存地址。Python中,通过变量名,不能改变对象的值,而是变量名指向了新的对象。C/C++中,变量名重新赋值,会改变对应内存地址的值。
Python中,变量名可以指向任何类型的对象,允许改变一个变量名指向新的不同类型的数据对象。C/C++中,一个变量名有其特定的数据类型。
3.Python标准类型:
Python语言提供了标准的数据类型,数据存储基于对象机制,上面关于对象的介绍能加深我们队Python数据的理解。
- 数字
- 整形
- 布尔型
- 长整形
- 复数型
- 字符串
- 列表
- 元组
- 字典
Python的对象存储数据机制:实质上是Python封装了内存地址,这种封装的优势在于Python可以实现自动的内存管理等功能,减轻开发人员的负担,代价则是Python相对于C/C++等语言,需要更多的空间消耗与性能损耗。