第四章 python 对象
python使用对象模型来 存储数据:
所有的对象都有三个特效:身份,类型和值
身份:每个对象都有唯一的一个身份表示自己,对象的身份可用内建函数id()获得。此值可认为是该对象的内存地址
类型:对象的类型觉得了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。内建函数type()可以查看Python对象的类型
因为在python中类型也是对象,所以type()返回的是对象而不是简单的字符串。
值:对象表示的数据项
以上三个特效在对象创建时就被赋值,除了值,其他两个特效是只读的)(只有对象支持更新操作,那么他的值才可以改变)
python的基本数据类型:
Integer 整型
Boolean 布尔
Long integer 长整型
Floating point real number 浮点型
Complex number 复数型
String 字符串
List 列表
Tuple 元组
Dictionary 字典
其他内建类型:
类型
Null对象(None)
文件
集合/固定集合
函数/方法
模块
类
布尔值:每个对象天生具有布尔True 或False值
一下对象的布尔值是False:
None
False(布尔类型)
所有的值为零的数
0
0.0
0L
0.0+0.0j
''
[]
{}
()
Python的内部类型:
代码 通过调用complie()可得到代码对象
帧
跟踪记录
切片 使用python扩展的切片语法时会获得切片对象
sepuence[start1:end1,start2:end2]
sepuence[起始索引:结束索引:步进值]、、、
例如
>>>foostr = 'abcde'
>>>foostr[ : : -1]
'edcba'
省略
Xrange
Python提供 is 和 is not 操作符测试两个变量是否指向同一个对象。
cmp(obj1,obj2)函数:(可以用于字符串的比较)
比较obj1 和obj2的值,根据比较结果返回整型i:
i<0 obj1<obj2
i>0 obj1>obj2
i=0 obj1=obj2
type()函数:
>>>type(4)
<type 'int'> #整型
>>>type('hellow world!')
<type 'string'> #字符型
>>>type(type(4))
<type 'type'> #type类型
对type()函数调用的方式 :
>>>if type(num) = type(0)
对象值比较VS对象身份比较
>>>import types
>>>if type(num) == types.IntType
减少查询次数的优化版:
>>>from types import IntType
if type(num) is IntType
容器类型和原子类型:
标量/原子类型:数值(所有的数值类型),字符串(全部是文字)
容器类型:列表,元组,字典
以更新模型为标准的类型分类:
可变类型:列表,字典
不可变类型:数字,字符串,元组
以访问模型为标准的类型分类:
python的访问模型共有三种访问方式:
直接存取,顺序,映射
直接访问:数字
顺序访问:字符串,列表,元组
映射访问:字典
标准类型分类: