什么是python对象

来源:互联网 发布:微信公众号跳转淘宝 编辑:程序博客网 时间:2024/06/05 15:08

python使用对象模型来存储数据,也就是说构造任何类型的值都是一个对象。所有的python对象都拥有三个特性:身份id,类型和值。

身份id唯一的身份标识,可以使用内建函数id()来得到,这个值可以被认为是该对象的内存地址。对象身份的比较可通过运算符isis not来完成,判断它们是否指向(引用)同一个对象,这里举一个有趣的例子:

>>> a = 1>>> b = 1>>> c = 1000>>> d = 1000>>> a is bTrue>>> c is dFalse>>> id(a), id(b), id(c), id(d)(11258984, 11258984, 12386056, 11594792)

可以看出,ab指向同一个对象,但cd却不同,这是为什么呢?这是因为,整数对象和字符串对象是不可变对象,python会很高效的缓存它们,不过整数对象仅缓存简单整数,如上面例子中的01000就不会缓存了。

类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则,可以用内建函数type()查看python对象的类型,也可以用isinstance(),在python中类型也是对象基本数据类型包括数字、整型、布尔型、长整型、浮点型、复数型、字符串、列表、元组和字典,还有一些其它的内建类型,它们是类型、None、文件、集合、函数、模块和类,除此之外还包括一些内部类型,即代码、帧、跟踪记录、切片(步进切片、多维切片、省略切片)、省略(省略对象有一个唯一的名字Ellipsis)、Xrange(是range()的补充)。

值:对象表示的数据项。对象值的比较除了一些常见的运算符之外,还可以使用cmp()内建函数。

上面提到的类型可按照三种不同的模型进行分类:存储模型、更新模型、访问模型。

存储模型分两种——

原子类型:数值、字符串。

容器类型:列表、元组、字典。

更新模型分两种——

可变类型:列表、字典。

不可变类型:数字、字符串、元组。

访问模型分三种——

直接访问:数字。

顺序访问:字符串、列表、元组。

映射访问:字典。


1 0
原创粉丝点击