python补充(2) - 内置函数

1,cmp函数比较两个对象,如果小于返回负整数,大于的话返回正整数,相等返回0.

>>> a,b = 1,-1
>>> cmp(a,b)
1
>>> cmp(b,a)
-1
>>> a=-1
>>> cmp(a,b)
0

 

 如果比较的是自定义对象,则会调用自定义对象的__cmp__函数。在__cmp__内容可以定义对象的比较方式

2.str(),repr(),''

>>> str([1,2,3])
'[1, 2, 3]'
>>> repr([1,2,3])
'[1, 2, 3]'
>>> '[1,2,3]'
'[1,2,3]'
>>> eval(repr([1,2,3]))
[
123]
>>> eval('[1,2,3]')
[
123]
>>> 

 

 三种用法的作用基本相同,都是返回对象的字符串表示。

str用来将生成对象的字符串形式,repr和‘'作用可以说是相同的,也是返回对象的字符串表示,但是,这两种用法返回的字符串可以通过eval()函数得到原本的对象。但是str()则不行。

记住,并不是所有返回的字符串都可以通过eval()还原对象。如eval('type(type)')则会抛出异常。

3.浅拷贝和深拷贝

>>> list1 = ['a']
>>> list2 = list1
>>> id(list1)
13437528
>>> id(list2)
13437528
>>> import copy
>>> list3 = copy.deepcopy(list1)
>>> id(list3)
11330304
>>> 

list3就是list1的深拷贝了,从id可以看出来

 

posted @ 2009-04-28 11:28  ________囧丶殇  阅读(255)  评论(0编辑  收藏  举报