2011年 02月 28日 星期一 13:41:19 CST

1.Python对象的三个特性:身份,类型和值
除了值之外,其他两个特性都是只读的,且在对象创建的时候就被赋值。如果对象支持更新操作,那么它的值就可以改变,否则它的值也是只读的。

2.通过调用内建函数type()能够得到特定对象的类型信息。所有类型对象的类型都是type(可以通过type(type(42))来得到),它也是所有Python类型的根和所有 Python标准类的默认元类。类就是类型,实例是对应类型的对象。

3.Python有一个特殊的类型,被称为Null对象或者NoneType,它只有一个值None,它不支持任何运算也没有任何内建方法。None没有什么有用的属性,它的布尔值总是False。所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布尔值。空对象、值为零的任何数字或者Null对象None的布尔值都是False。

4.代码对象是编译过的Python源码片段,它是可执行对象。通过调用内建函数compile()可以得到代码对象。代码对象可以被exec命令或内建函数eval()来执行。

5.多维切片语法:sequence[start1:end1, start2:end2]
  省略切片语法:sequence[..., start1:end1]
  步进切片语法:sequence[起始索引:结束索引:步进值]

6.省略对象用于扩展切片语法中,起记号作用。它有一个唯一的名字Ellipsis,它的布尔值始终为True。

7.不同于很多其他语言,多个比较操作可以在同一行进行,求值顺序为从左到右。比较操作是针对对象的值进行的,也就是说比较的是对象的数值而不是对象本身。

8.作为对值比较的补充,Python也支持对象本身的比较。对象可以被赋值到另一个变量(通过引用)。

9.每个对象都天生具有一个计数器,记录它自己的引用次数。这个数目表示有多少个变量指向该对象。可用is和is not操作符来测试两个变量是否指向同一个对象。

10.整型对象和字符串对象是不可变对象,所以Python会很高效地缓存它们。这会造成我们认为Python应该创建新对象时,它却没有创建新对象的假象。

11.标准类型内建函数.
type(object)
type()接受一个对象作为参数,并返回它的类型。它的返回值是一个类型对象。
cmp(obj1, obj2)
cmp()用于比较两个对像obj1和obj2.如果obj1小于obj2则返回一个负整型,如果大于则返回一个正整型,如果等于则返回0.
str()和repr()
str()和repr()或反引号可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。通常情况下obj == eval(repr(obj))这个等式是成立的,但不是所有情况都成立。str()返回的结果通常无法用于eval()求值,但很适合用于print语句输出。

12.Python不支持方法或函数重载。

13.减少函数调用的次数和查询次数,都可以提高程序的性能。通过使用from-import你可以减少一次查询。

14.Python2.2统一了类型和类,所有的内建类型现在也都是类,在此基础上,原来的所谓内建转换函数像int()、type()、list()等,现在都成了工厂函数。也就是说虽然他们看上去有点像函数,但实质上他们是类。当你调用它们时,实际上是生成了该类型的一个实例。

15.所有的Python容器对象都能够容纳不同类型的对象。由于Python并没有字符类型,所以字符串是一个自我包含的文字类型。

16.访问类型

17.Python能自动管理内存,因此没有必要访问指针。在Python中你可以使用id()函数得到一个对象的身份号,这是最接近指针的地址。因为你不能控制这个值,所以其实没有太大意义。其实在Python中,一切都是地址。