第四章 Python对象
1、python对象都有三个特性
身份:可以通过id()获得,可以当作是对象的内存地址
类型:可以通过type()获得,类型也是对象!
值:对象表示的值
2、所有对象的类型是一个对象,称为类型对象,所有类型对象的类型是type,是所有python类的默认元类。
3、特殊类型 Null,只有一个值None,对象比较的结果是布尔值,对象比较的是值
4、内部类型
代码对象:通过内建函数compile()获得,可以被exec命令或者eval()函数来执行
帧对象
跟踪记录对象
切片对象
省略对象
XRange 对象
5、每个对象都天生具有一个计数器,记录它自己的引用次数。表示有几个变量指向它。Python 提供了is和is not 来测试两个变量是否指向同一个对象。
eg: a is b <===> id(a) = =id (b)
6、python 支持 3<4<5这样的表达式 等价于 3<4 and 4<5
7、标准类型内建函数
type() :接受一个对象作为参数,返回它的类型,返回值是一个类型对象。
cmp() :接受两个对象 返回a - b 的正负表达。
str() repr() ” 返回的都是字符串,str对用户比较友好,repr对Python比较友好。
8、python不支持方法或者函数的重载
9、标准类型的分类
根据存储类型分类:
原子类型:数值、字符串
容器类型:列表、元组、字典
根据更新类型分类:
可变:列表、字典
不可变:数字、字符串、元组
注意: i=8 -> i=10
这不代表数值变了,而是代表创建了新的数值对象来存储新的数值。两个i的id()返回值是不同的。
根据访问模型分类:
直接存取:所有数值类型
顺序访问:字符串、列表、元组
映射:字典