1、python对象
所有的Python 对像都拥有三个特性:身份,类型和值。
身份:
每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。
这个值可以被认为是该对象的内存地址。您极少会用到这个值,也不用太关心它究竟是什么。
类型
对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。您可以用内建函数type()查看Python 对象的类型。因为在Python 中类型也是对象(还记得我们提到Python 是面向对象的这句话吗?),所以type()返回的是对象而不是简单的字符串。
值
对象表示的数据项
2、布尔值
所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布
尔 True 或 False 值。空对象、值为零的任何数字或者Null 对象 None 的布尔值都是False。
下列对象的布尔值是False。
None
False (布尔类型)
所有的值为零的数:
0 (整型)
(浮点型)
0L (长整型)
0.0+0.0j (复数)
"" (空字符串)
[] (空列表)
() (空元组)
{} (空字典)
值不是上面列出来的任何值的对象的布尔值都是 True,例如non-empty、 non-zero 等等。
用户创建的类实例如果定义了nonzero(__nonzero__())或length(__len__())且值为0,那
么它们的布尔值就是 False。
3、标准类型内建函数
1 除了这些运算符, 我们刚才也看到, Python 提供了一些内建函数用于这些基本对象类型:
2 cmp(), repr(), str(), type(), 和等同于repr()函数的单反引号(``) 运算符。
3 表4.4 标准类型内建函数
4 函数 功能
5 cmp(obj1, obj2) 比较 obj1 和 obj2, 根据比较结果返回整数 i:
6 i < 0 if obj1 < obj2
7 i > 0 if obj1 > obj2
8 i == 0 if obj1 == obj2
9 repr(obj) 或 `obj` 返回一个对象的字符串表示
10 str(obj) 返回对象适合可读性好的字符串表示
11 type(obj) 得到一个对象的类型,并返回相应的type 对象
4、为什么我们有了repr()还需要``
1 在Python 学习过程中,你偶尔会遇到某个运算符和某个函数是做同样一件事情。之所以如
2 此是因为某些场合函数会比运算符更适合使用。举个例子, 当处理类似函数这样的可执行对象
3 或根据不同的数据项调用不同的函数处理时,函数就比运算符用起来方便。另一个例子就是双
4 星号(**)乘方运算和pow()内建函数,x ** y 和 pow(x,y) 执行的都是x 的y 次方。
5、判断对象类型
1 class objA:
2 pass
3
4 A = objA()
5 B = 'a','v'
6 C = 'a string'
7
8 print isinstance(A, objA)
9 print isinstance(B, tuple)
10 print isinstance(C, basestring)
6、以更新模型为标准的类型分类
1 更新模型
2 分类 Python 类型
3 可变类型 列表, 字典
4 不可变类型 数字、字符串、元组
1 x = 'Python numbers and strings'
2 x = 'are immutable?!? What gives?'
3 i = 0
4 i = i + 1
5 解释:一个新对象被创建,然后它取代了旧对象
7、访问模型中三种访问方式:直接存取,顺序,和映射
1 对非容器类型可以直接访问。所有的数值类型都归到这一类。
2 序列类型是指容器内的元素按从0 开始的索引顺序访问。一次可以访问一个元素或多个元
3 素, 也就是大家所了解的切片(slice)。字符串, 列表和元组都归到这一类。我们前面提到过,
4 Python 不支持字符类型,因此,虽然字符串是简单文字类型,因为它有能力按照顺序访问子字
5 符串,所以也将它归到序列类型。
6 映射类型类似序列的索引属性,不过它的索引并不使用顺序的数字偏移量取值, 它的元素
7 无序存放, 通过一个唯一的key 来访问, 这就是映射类型, 它容纳的是哈希键-值对的集合。
1 分类 Python 类型
2 直接访问 数字
3 顺序访问 字符串、列表、元组
4 映射访问 字典
1 数据类型 存储模型 更新模型 访问模型l
2 数字 Scalar 不可更改 直接访问
3 字符串 Scalar 不可更改 顺序访问
4 列表 Container 可更改 顺序访问
5 元组 Container 不可更改 顺序访问
6 字典 Container 可更改 映射访问