python对象分类

1 python对象分类

所有的Python对象都拥有三个特性:身份,类型和值

  • 身份: 每一个对象都有一个唯一的身份标识自己。任何对象的身份可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址
  • 类型: 对象的类型决定了对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。你可以内建type()查看对象的类型
  • 值:对象表示的数据项

对象属性:某些对象有属性、值或相关联的执行代码。python用句点(.)标记法来访问属性。属性包括相应对象的名字。最常用的属性是函数和方法

 

2 对象类型

标准类型(Numeric, Sequence, Mapping)

  • 数字(分为几个子类型,其中二个是整形)
  • Interger 整型
  • Long integer 长整型
  • Boolean 布尔类型
  • Float point real number 浮点型
  • Complex number 复数型
  • String 字符串
  • List 列表
  • Tuple 元组
  • Dictionary 字典

其他类型对象(Internal, ...)

  • 类型
  • Null 对象(None)
  • 文件
  • 可变/不可 集合
  • 函数/方法
  • 模块

类型对象和type类型对象(Fundamental, ...)

对象的一系列固有行为和特性都是事先定义好,从这个角度来说,类型正是保存这些信息的最佳位置。描述一种类型所需要的信息不可以用一个字符串来搞定,所以类型不能是一个简单的字符串,也不能和数据保存在一起,所以用将类型定义成一个对象是最好的选择。

类型对象和type类型对象

对象的一系列固有行为和特性都是事先定义好,从这个角度来说,类型正是保存这些信息的最佳位置。描述一种类型所需要的信息不可以用一个字符串来搞定,所以类型不能是一个简单的字符串,也不能和数据保存在一起,所以用将类型定义成一个对象是最好的选择。

>>> type(2)
<type 'int'>
>>> type(int)
<type 'type'>
>>> type(type(1))
<type 'type'>

通过调用type()函数,能够得到特定对象的类型信息。从上述代码中我们可以知道,所有类型对象的类型都是type,它是所有python类型的根和所有python标准类型的默认元类(metaclass).

所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小,每个对象天生具有True值或False值,空对象,值为0的任何数字或者Null对象None的布尔值都是False。下列对对象的布尔值是False:

    • None
    • False(布尔类型)
    • 所有的值为零的数
    • 0(整型)
    • 0.0 (浮点型)
    • 0L (长整型)
    • 0.0+0.0j (复数)
    • ''空字符串
    • [] 空列表
    • {} 空字典
    • () 空元组
      值不是上面列出来的任何值的对象的布尔值都是True

3 python对象特征

  • 数字(整数,浮点数,二进制,分数等) 
    支持加法和乘法等
  • 序列(字符串,列表,元组) 
    支持索引,分片和合并
  • 映射(字典) 
    支持通过键的索引等 
  • 对象的类型告诉Python去执行什么样的任务。 
  • 集合是自成一体的一个分类(不会把键值映射到值,也没有逐位的排序顺序)。

1.不可变类型(数字,字符串,元组,不可变集合):不支持原处修改

2.可变类型(列表,字典,可变集合):可以通过操作原处修改,而不用创建新的对象

一般来说,不可变类型具有某种完整性,保证这个对象不会被程序的其他部分改变

 

参考:

Python 对象分类

python对象类型分类

 

posted @ 2018-03-09 20:31  harvyxu  阅读(4836)  评论(0编辑  收藏  举报