随笔 - 42  文章 - 3  trackbacks - 0
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(2)

随笔档案

文章档案

网页收藏

搜索

  •  

最新评论

阅读排行榜

评论排行榜

本节介绍Python的内建函数和异常.许多内建函数的细节及特性可以在这里找到.

内建函数

本节介绍的函数在解释器中总是可用的,他们被包含在 __builtin__ 模块里.另外每个模块的 __builtins__ 属性经常指的是这个模块(除了当在restricted execution环境下运行时).

_(下划线)

默认情况下,变量 _ 用于在交互模式下表示最近一个表达式的运行结果.

参阅 sys.displayhook (118)

__import__(name [, globals [, locals [, fromlist]]])

import语句通过调用这个函数来导入模块. name是包含模块名字的字符串, globals是一个可选的定义全局名称空间的字典, locals是定义局部名称空间的字典, fromlist是from语句目标的列表.例如, import spam语句会调用__import__('spam', globals(), locals(), []) ,而from spam import foo 语句会调用 __import__('spam', globals(), locals(), ['foo']). 如果模块名在包名字之后(如foo.bar)而且fromlist为空时,就返回对应的模块对象.如果fromlist不为空,则只会返回最顶级的包.

这个函数是一个低等级的模块载入接口.它并不执行import语句的所有步骤(通常情况下局部名称空间并不会随模块中包含对象的名称引用的改变而改变.这个函数可以由用户来重新定义,这样为import语句加入新的行为.默认的执行并不会检查locals参数,而globals只用于决定包的内容(这些参数可以使 __import__()能够完整地访问全局和局部名称空间)

abs(x)
返回x的绝对值

apply(func [, args [, keywords]])
对可调用对象func执行函数调用. args是一个包含固定位置参数的元组, keywords是包含关键参数的字典. apply()函数也可以写做func(*args ,**keywords ).

buffer(sequence [, offset [, size]])
创建一个新的缓冲器对象.缓冲器通常是一个序列(如字符串)的字节导向序列.缓冲器和字符串在许多地方是相同的,但是它不支持字符串方法,而且也不能使用string模块的函数.

callable(object)
当object为可调用对象时返回True,否则返回False

chr(i)
将一个0到255的整数转换为一个字符.

cmp(x,y)
比较x和y. x< y返回负数; x== y返回零; x> y返回整数.它可以比较任意两个对象并返回结果,即使有时候对象的比较豪无意义(例如比较文件对象).在某些环境下,这样的比较会引发异常.

coerce(x,y)
将x和y值转换为同一个数值类型并作为一个元组返回.(第三章,类型和对象)

compile(string, filename, kind)
使用exec()或eval()将字符串编译为代码对象. filename is a string containing the name of the file in which the string was defined. kind为'exec'时代表一个表达式的序列, 'eval'代表一个表达式, 'single'代表一个运行语句.

complex(real [, imag])
创建一个复数

delattr(object, attr)
删除对象的一个属性, attr是一个字符串.与 del object.attr相同

dir([object])
返回包含属性名称的列表.它们来自对象的 __dict__, __methods__,以及 __members__ 属性.如果没有传递给它参数,则会返回当前的local symbol table

divmod(a,b)
返回一个包含商和余数的元组.对于整数,将返回(a / b , a % b ),对于浮点数,将返回(math.floor(a / b ), a % b )

eval(expr [, globals [, locals]])
计算一个表达式的值. expr是一个字符串或由compile()创建的一个代码对象. globals和locals为操作定义的全局和局部名称空间,当省略时,表达式将在调用时的名称空间计算.

execfile(filename [, globals [, locals]])
运行文件filename中的语句. globals和locals定义了文件运行的全局和局部名称空间,当省略时,文件将在调用时的名称空间运行.这个函数不能在一个函数主体里使用,因为它与内嵌范围不相容.

filter(function, list)
使用func()函数来过滤s中的元素.使func返回值为false的元素被丢弃,其它的存入filter函数返回的列表中.如果function是None,则list中值为False的元素就被删除.

float(x)
将x转换为浮点数

getattr(object, name [, default])
返回一个对象的属性. name是一个字符串. default是一个可选的值,代表当没有这个属性时返回的值. 与 object.name 结果相同

globals()
返回一个与全局名称空间对应的字典

hasattr(object, name)
返回object是否有name属性,布尔值

hash(object)
返回一个对象的整数哈希值(如果可能).两个相等对象的哈希值是相同的.模块没有定义一个哈希值.

hex(x)
将一个整数或长整数转换为一个十六进制的字符串

id(object)
返回一个对象的整数id

input([prompt])
相当于eval(raw_input(prompt ))

int(x [, base])
将一个数字或字符串转换为整数. 可选参数base代表从字符串转换时的基础/根据

intern(string)
Checks to see whether string is contained in an internal table of strings. If found, a copy of the internal string is returned. If not, string is added to the internal table and returned. This function is primarily used to get better performance in operations involving dictionary lookups. Interned strings are never garbage-collected. Not applicable to Unicode strings.

isinstance(object, classobj)
检查object是否是classobj的事例或子类.也可用于检查类型

issubclass(class1, class2)
检查class1是否是class2的子类(派生类)
注意: issubclass(A , A )返回True

len(s)
返回序列s中包含的条目数目

list(s)
返回一个包含序列s中条目的新列表

locals()
返回一个与调用时局部名称空间相对应的字典

long(x [, base])
将一个数字或字符串转换为长整数,可选参数base代表从字符串转换时的基础/根据

map(function, list, ...)
将序列list中的每个元素传递给function函数做参数,函数的返回值组成列表并返回.如果提供给多个列表,则函数应包含有多个参数,每个参数从不同的列表获得.如果函数为None,则默认为 identity function(?身份函数).如果None映射到多个列表,则返回一个包含元组的列表,元组的每个元素分别来自各个列表.如果有必要,短的列表将使用None来扩充到与最长列表长度相等. map可以使用list comprehensions 来代替.例如map(function , alist ),可以使用[function (x) for x in alist ]来代替
参阅 zip (105).

max(s [, args, ...])
单个参数时,返回序列s中的最大值.多个参数时,返回值最大的参数

min(s [, args, ...])
单个参数时,返回序列s中的最小值.多个参数时,返回值最小的参数

oct(x)
将一个整数或者长整数转换为八进制字符串

open(filename [, mode [, bufsize]])
打开文件filename并返回一个文件对象(第十章,运行环境). mode代表文件打开的模式. 'r' 表示读, 'w' 表示写, 'a' 表示在文件末尾添加内容. 还有一种更新模式,你只要在读写模式后增加一个'+'就可以使用这种模式,如'r+' 或 'w+'.当一个文件以更新模式打开,你就可以对这个文件进行读写操作.只要在任何读取操作之前刷新所有的输出缓冲就不会有问题.如果一个文件以 'w+' 模式打开,它的长度就度截为 0.当mode省略时,将会使用'w'模式.bufsize参数指定了缓冲行为, 0代表无缓冲,1代表行缓冲,其他正数代表一个大约的字节缓冲器大小,负数代表使用系统默认缓冲器大小(也是默认行为)

ord(c)
返回单个字符c的整数顺序值.普通字符返回[0,255]中的一个值,Unicode字符返回 [0,65535]中的一个值

pow(x, y [, z])
返回x ** y ,如果z存在返回(x ** y ) % z

range([start,] stop [, step])
返回一个从start到stop的整数序列, step代表步进,默认值为1. start默认值为0.负数的step可以创建一个递减的整数序列
参阅xrange (105)

raw_input([prompt])
从标准输入(sys.stdin)中读取一行,并把它作为字符串返回.如果提供了prompt,它将首先打印到标准输出(sys.stdout).当读取到一个EOF时,就会引发一个EOFError异常.如果readline模块被导入,那么这个函数会使用它来提供更高级的功能

reduce(func, seq [, initializer])
函数从一个序列收集信息,然后只返回一个值(例如求和,最大值,等).它首先以序列的前两个元素调用函数,再将返回值和第三个参数作为参数调用函数,依次执行下去,返回最终的值. func函数有且只有两个参数.在seq为空时,将使用初始值initializer.

reload(module)
重新导入一个已经导入的模块. module必须是一个已经存在的模块对象.一般情况下并不鼓励使用这个函数,除了在调试的时候.
当一个模块重导入时,定义它的全局名称空间的字典依然存在.Thus, definitions in the old module that aren’t part of the newly reloaded module are retained.模块可以利用这个来检查他们是否已经被导入.
重导入一个使用C编写的模块通常是不合法的
If any other modules have imported this module by using the from statement, they’ll continue to use the definitions in the previously imported module. This problem can be avoided by either reissuing the from statement after a module has been reloaded or using fully qualified names such as module.name .
如果有使用以前模块中类创建的实例,它们将继续使用以前的模块

repr(object)
返回一个对象的标准字符串表示.与向后的引号 `object` 相同.大多数情况下,返回的字符串可以使用eval()来再次创建这个对象.

round(x [, n])
Returns the result of rounding the floating-point number x to the closest multiple of 10 to the power minus n . If n is omitted, it defaults to 0. If two multiples are equally close, rounding is done away from 0 (例如, 0.5 is rounded to 1.0 and -0.5 is rounded to -1.0).

setattr(object, name, value)
设置一个对象的属性. name是一个字符串. 相当于object.name = value .

slice([start,] stop [, step])
返回一个代表指定数列中一个整数的切片对象.切片对象也可以有扩展切片操作语句来产生.(第三章,序列和映射方法)

str(object)
返回表示对象的可打印形式的字符串.与print语句产生的字符串相同.

tuple(s)
从序列s中创建一个元组.如果s已经是一个元组,则返回s

type(object)
返回object的类型,它是一个types模块中定义type类型
参阅isinstance (102)

unichr(i)
将一个0到65535的整数转换为一个Unicode字符

unicode(string [, encoding [, errors]])
将string转换为Unicode字符串. encoding指定了string的数据编码,它被省略时,将使用sys.getdefaultencoding(). errors指定编码错误处理方式.('strict', 'ignore', 或 'replace' .参阅第三章和第九章中有关Unicode内容)

vars([object])
返回object的 symbol table (通常在object的__dict__属性).如果没有给它提供参数,则返回对应当前局部名称空间的字典.

xrange([start,] stop [, step])
和range函数相似,但返回的是一个XRangeType对象.它生成一个迭代器,就是只有用那个数时才临时通过计算提供值,而不是全部储存它们.这样在处理大的数列时能节省大量的内存.

zip(s1 [, s2 [,..]])
用来将几个序列组合成一个包含元组的序列,序列中的每个元素t[i ] = (s1[i ], s2[i ], ..., sn[i ]).结果与最短序列的长度相等.

posted on 2009-07-14 22:26 鹰击长空 阅读(276) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理