Saturday, November 01, 2008

[Python]Python2.6内建函数(未完)

Python用了很久了,但一直没有系统的学习一下它的内建函数, 也就是在__built-in__这个module里的函数。这些函数都是在直接默认在namespace中不需要import 任何其它module来获得的。所以可以想象,也是最常用最有用的那部分函数。决定今天补上这个差事。也是为了使自己能够熟系很多不那么常用的功能,写出更加有效率的代码。

__import__ 最常使用的import函数会调用__import__。python 提供这个内建函数是为了让用户可以改变import的语法,比如提供自己的import 函数

abs(x) 返回绝对值。按说应该放在math module里面, 但是估计太常用了就放在built-in里面了。同样的还有max, min

all(iterable), any(iterable) 前者返回True当所有iterable元素为“True”,后者返回True当有一个元素为“True”。装13的话可以这么说,一个是全称量词一个是存在量词。不过要注意的是, 我这里True打了引号是因为不仅仅是Boolean的True值。事实上,在Python当中,False, 0, 空的list [], 空的dict {}, 空的tuple () 以及空字符串 "" 都在某种程度上被认为是False。 比如x取值为上述任何一者的时候, not x 都等于 True。这两个是Python 2.5以后出来的新feature

basestring() 是str 和unicode的superclass

bin(x) 输出一个整数的二进制字符串。 比如 bin(9) = ' 0b1001'。 Python 2.6添加的很实用的一个功能。

bool([x]) 把一个值转换为bool值。规则如上在all, any中所述

callable(obj) 如果obj为可调用, 返回True, 否则为False。 比如 callable(lambda x: x**2) = True。 callable([1]) = False

chr(i) 将一个ASCII码转换为对应的字符。ord 为其反函数。 chr(48) = '0', ord('0') = 48。

cmp(x, y) 比较 x 和y, 如果xy返回正数

compile 编译一段python的code。比如 a = compile("print \'Hello World\', '', 'exec') 然后就可以用 exec(a)来得到'Hello World'的输出

complex 创建一个虚数

delattr(obj, name), setattr(obj, name) 比如 delattr(x, 'foobar') 等同于 del x.foobar

dict 创建一个dictionary。 类似用法的还有 tuple, list, set。需要提一下的是dict的用法。比如dict({'one':1, 'two':2})是最基本一种,实践中更加简洁方便的一种写法是 a = ['one', 'two']; b = [1, 2], dict(zip(a, b))。 zip是一个非常神奇的函数,用起来好处多多,可以让代码简洁清晰很多.

No comments: