Chinaunix首页 | 论坛 | 博客
  • 博客访问: 248724
  • 博文数量: 44
  • 博客积分: 1052
  • 博客等级: 少尉
  • 技术积分: 742
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 16:51
文章分类

全部博文(44)

文章存档

2013年(7)

2012年(14)

2011年(23)

分类: Python/Ruby

2011-02-16 23:12:08

     对象,python中比较难弄明白的东西,所以这里也只能是简略的总结下书上的话。
 
     对象有三个特性:身份,类型,值。
     身份:可以被认为是对象的内存地址,用id()获得。
     类型:对象都由类型,类型决定对象可以保存什么类型的值,可以进行什么样的操作,遵循什么样的规则。类型本身也是对象。
     值:对象表示的数据项。其实值好像也是一个对象。只能说可以这么来看。
     对象还有属性,方法等。

     标准类型(基本数据类型,属于内建类型)有:数字(含整型,布尔型,长整型,浮点型,复数型),字符串,列表,元组,字典。
     其他的内建类型有:类型,NULL对象,文件,集合,固定集合,函数,方法,模块,类。
     内部类型:代码,帧,跟踪记录,切片,省略,Xrange。

     所有类型对象的类型为type。python2.2后类型和类统一了,因此类就是类型,类型就是类,实例是对应类型的对象。对于标准对象,同类型的对象之间可以比较大小,每个对象天生具有布尔True或False值。

简单介绍的几种内部类型。
代码对象:通过编译后的python源代码片断,为可执行对象。由内建函数compile()获得,可由exec或eval()来执行。代码对象是函数的一个属性。函数的其他属性如:函数名,文档字符串,默认参数等...
帧对象:栈帧,包含python解释器在运行时所需要知道的所有信息。(具体目前我也不知道是什么)
跟踪记录对象:异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录信息对象被创建。
切片对象:使用python的扩展的切片语法时,就会创建切片对象。
省略对象:在切片对象中的省略号。
XRange对象:由xrange()函数生成,用于需要节省内存的时候使用。如range(0,10000)这样就一次生成了一万个整数,占用大量内存空间。如果是xrange(0,10000)那么需要的数是在需要的时候才计算出来的,而不是预先生成的。

标准类型操作符:
部分内建函数:cmp(obj1, obj2), repr(obj), str(obj), type(obj).
对象值的比较:<, >, <=, >=, ==, != (关系操作符)
对象身份的比较: is, is not
逻辑操作符:not, and, or

这些的优先级是从上到下按高到低来排的。

标准类型的分类(有三种分类方式):
  i) : 存储模型。根据该类型的对象能保存多少个对象来分。只能保存一个称为标量存储(如数值类型,字符串类型)。能保存多个的称为容器存储(如列表,元组,字典)。
 ii) : 更新模型。根据对象创建后其值还能否更新来分类。分为可变对象(如列表,字典)和不可变对象(如数值类型,字符串,元组)
iii) : 访问模型。根据访问存储的数据的方式类进行分类。分为直接访问(如数值类型),顺序访问(如字符串,列表,元组,三者都能切片)和映射类型(如字典,只能用key来获取value)。


比较总要的是:对象的三个特征和标准类型的分类。同时记住“类(新式类)就是类型”。
阅读(1395) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~