收藏 分销(赏)

Python内建方法详解.pdf

上传人:曲**** 文档编号:226626 上传时间:2023-03-09 格式:PDF 页数:20 大小:785.68KB
下载 相关 举报
Python内建方法详解.pdf_第1页
第1页 / 共20页
Python内建方法详解.pdf_第2页
第2页 / 共20页
Python内建方法详解.pdf_第3页
第3页 / 共20页
Python内建方法详解.pdf_第4页
第4页 / 共20页
Python内建方法详解.pdf_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、Python内建方法详解.docPython内建方法Python提供了许多内建函数。下面按函数名字母顺序一一列出并作介绍。abs(x)返回一个数的绝对值。参数可以是一个普通整数、长整数或浮点数。如果参数 是复数,则它的值被返回。如:若a=x+yi,则abs(a)=sqrt6八2+/2)。all(iterable)如果可编历对象中的所有元素都是真值,则返回True。相当于:def all(iterable):for element in iterable:if not element:return Falsereturn True该函数是2.5版本中新增的。any(iterable)只要可编历对

2、象中有一个元素为真值,就返回True。等价于:def any(iterable):for element in iterable:if element:return Truereturn False该函数是2.5版本中新增的。basestring()(注:basestring是一个可调用对象。)basestring是str与unicode的父类,它是一个抽象类,不能直接被调用或实例化,但可以用它来测试一个对象是否是 str 或 unicode 的实例:isinstance(obj,basestring),等效于 isinstance(obj,(str,unicode)o该函数是2.3版本中新增

3、的。bin(x)将一个整数转换成二进制字符串。结果是一个合法的Python表达式。如果参 数x不是一个整数对象(int object),它必须定义index()方法,并返回-个 整数。该函数是2.6版本中新增的。bool(x)使用标准真值测试过程(standard truth testing procedure)将一个值转换成 布尔型。如果参数x省略或为假值(如:0,空字符串,None),返回False;否则总 是返回Trueo bool也是类型,它是int类型的子类。但不能从bool类型派生子 类。它只有两个实例:True和False。该函数是2.21版本中新增的。在2.3版本中有所改变:如

4、果没有参数传入,函数返回Falseocallable(object)如果参数object是可调用的,返回True,否则返回False。即使函数返回 True,调用该对象仍然有可能会失败;但是如果返回False,则调用对象肯定失 败。注意:类都是可调用的(通过调用类返回一个新实例)。定义了_call_()方法 的实例都是可调用的。chr(i)将assii码为i的整数转换成只包含一个字符的字符串。例如:chr(97)返回字 符串a。参数i必须在025 5范围内,否则会触发ValueError异常。与之对 应的一个函数是。rd(c),它将字符转换成整数。也可以参考一下unichrO。classmet

5、hod(function)该函数返回一个类方法。类方法显式的接收第一个参数作为类类型,就如实例 方法接收第一个参数作为对当前实例的引用。可以使用下面的语法定义一个类方法:class C:classmethoddef f(cis,argl,arg2,):classmethod是一个函数修饰符-可以在Function definitions中查询更多关于函数定义描述的信息。可以通过类(如:c.f()或实例(如:c().f()调用类方法。如果在派生类中调用 父类的类方法,派生类对象(derived class object)将作为第一个参数被传入类 方法。Python类方法与C+或Java中的静态方

6、法有区别。可以查询本章中对 staticmethod的介绍来了解这些知识。更多关于类方法的信息,可以参考:The standard type hierarchy.该函数是2.2版本中新增的。在2.4版本中作了修改:添加了对函数装饰语法的支持。cmp(x,y)比较两个对象并根据比较结果返回一个整数。如果x y返回一个正数,如果x=y返回0。compile(source,filename,mode,flags,dont_inherit)将源代码编译成代码对象(code object)或AST对象。可以通过exec语句来执 行代码对象,或通过eval()来求值。参数source可以是字符串或AST对

7、象。更多关于AST对象的信息,可以参考ast模块文档。参数mode指定了代码编译的模式。它可以是:“exec”:代码段“eval”:单个表达式“single”:单条交互式语句可选参数flags和dot_inherit控制 影响代码编译的将来语句。两个参数的默认值都是 0,complex(real,imag)创建一个值为real+imag*j的复数,或将一个字符串或数字转换为一个 复数。如果第一个参数是字符串,它将被作为复数解析,同时不能提供第二个参 数。第二个参数不能是字符串。每个参数可以是任何的数字类型(包括复数类型)。参数imag的默认值为0。如果两个参数都省略,返回0j。delattr(

8、object,name)参数是一个对象和字符串。字符串必须是对象属性的名称。函数删除对象的属 性。如:delattr(x,“foobar),相当于语句:del x.foobaro 与 delattr 对应的 函数是setattr,用于设置对象的属性。diet(arg)创建一个字典对象。可选的参数arg用于初始化字典项。字典类型在Mapping Types 一 diet章中进行介绍。关于其他的容器,可以参考list,set,tuple,collections 模块。dir(object)如果省略参数,函数返回局部区域内的变量列表。如果参数没有省略,函数尝 试将该参数对象的所有合法属性名称保存到列

9、表中并返回该列表。如果对象定义了_dir_()方法,那么该方法将被调用,并返回属性列表。允 许对象通过实现getattr()和getattribute()方法来自定义dir()返回对 象的属性。如果对象没有定义_dir_(),dir()尝试从对象的_dict_属性(如果定义了_dict_)和对象所属类型中获取信息。dir()返回的结果不必是完整的,如果对象 定义了_getattr_()方法,那么结果可能不准确。默认的dir()实现针对不同类 型的对象可能有不同的行为,它尝试去获取更多相关的信息,而不是全部的信息:如果对象是模块对象(module object),结果列表包含所有模块中定义的属性

10、 的名称。如果对象是类型或类对象,结果列表包含该类型所有的属性名称,包括从父类 继承的。否则,结果列表包含对象的所有属性名称、对象所属类型的属性名称,以 及父类的所有属性名称。结果列表根据属性的名称字母顺序保存。import struct dir()#doctest:+SK IP builtins doc ,name,struct dir(struct)#doctest:+N0R MALI ZE_WH ITESP ACE Struct,_builtins_,_doc_J,_file_,_name_,package_,_clearcache,,calcsize,error,pack,pack_i

11、nto,unpack,unpack_from,class Foo(object):def _dir_(self):return L kan,ga,roo J f=Foo()dir(f),ga,kan,,roodivmod(a,b)接收两个数字(复数除外)作为参数,返回一对值:商,余数。对于不同类型的操作数,按二进制算术运算法则进行计算。对于普通整数与长整数,结果为:(a/b,a%b)o 对于浮点数,结果为:(q,a%b),其中 q=math.floor(a/b),如 果q 1,q=lo无论如何,q*b+a%b总是非常接近于a,如果a不能整除 b,那么:0=abs(a%b)for i,seaso

12、n in enumerate(5 Spring,,Summer,Fall,Winter):print i,season0 Spring1 Summer2 Fall3 Winter该函数是2.3版本中新增的。在2.6版本中,增加了 start参数。eval(expression,globals,locals)参数expression是一个字符串,可选的globals参数必须是一个字典,可选 的locals必须是一个映射对象(mapping object)oExpression参数作为一个Python表达式而被解析并求值(evaluate),它使用 globals与locals字典作为全局和本地变

13、量。globals参数的默认值为当前的全局 变量。locals参数默认为globals。如果两个参数都省略,那么eval()会在当 前上下文中执行。执行过程中的异常都会被认为是语法错误异常。下面是使用 eval的例子:X=1Print eval(x+1)expression参数也可以是一个代码对象(通过compile()创建),如果代码对象 使用exec模式进行编译(如:eval(compile(3+4,string,“exec”),eval()函数将返回 None。提示:exec()支持动态语句执行,使用execfileO来执行文件中的语句。Globals 0,locals。分别返回全局变量

14、和局部变量的字典,它们可以在调用eval,execfile时作为参数传入。execfile(filename,globals,locals)这个函数与exec语句很像,但是它接收一个文件路径作为参数,并执行文件 中的内容。它与import语句不同:它没有使用模块管理一它只是无条件的读取文件 内容并执行,而没有创建一个新的模块。ExecfileO的globals参数与locals参 数的含义和eval()一样,但函数的返回值为None。file(filenanie,niode,bufsize)file类型的构造函数,它的参数与open。方法的参数的含义一致。open。方 法将在下面介绍。当要打开

15、一个文件时,通常使用。pen()来代替file。file()更适合在类型测试的时候来使用(如:isinstance(f,fle)o该函数是在此2.2版 本中新增的。filter(function,iterable)分别对可编历对象中的元素应用函数,将结果为True的元素组成新的列表并 返回(不改变原有列表。)o iterable参数可以是一个序列、一个支持编历的容器 对象、也可以是一个iterator对象。如果参数是字符串类型或者tuple类型,那 么返回的结果也是原来的类型;否则它总是返回一个列表(list)类型。如果 function为None,则恒等函数(identity functio

16、n)被作为筛选函数(过滤掉非真 值元素)函数等效为:function 不为 None:item for item in iterable if function(item)Function 为 None:item for item in iterable if item float(x)将一个字符串或数字转换为浮点数。如果参数是字符串,它可能包含符号或小 数点,字符串参数也可以是“+nan,-nan或“+inf”,-info”;否则,参 数必须是普通整数或长整数,或一个浮点数。浮点数将直接被返回。如果没有提供 参数,函数返回0.0。注意:如果参数是字符串,函数可能会返回NaN(Not a Nu

17、mber),Infinity(无穷 大),这依赖于低层的C语言库。Float可能接收“nan”来表示一个非数字,inf 和-in1来表示一个正无穷和负无穷。对于nan,+”,“-”符号将被忽略。Float通过使用“nan”,“inf”,“-inf”来表示NaN,正无穷,负无穷。format(value,format_spec)按指定格式表示一个值。对格式的解析依赖于值参数。有一套标准的格式语法 用于大部分Python内置类型。注意:Format(value,format_spec)仅仅调用 value._format(format_spec)o 该 函数是2.6版本中新增的。frozenset

18、(iterable)R eturn a frozenset object,optionally with elements taken from iterable.The frozenset type is described in SetTypes 一 set,frozenset.For other containers see the built in diet,list,and tuple classes,and the collections module.New in version 2.4.getattr(object,name,default)获取对象指定属性的值。参数name必

19、须是一个字符串,如果name为对象中某 个属性的名字,该属性的值将被返回。例如:getattr(x,foobar)等效于 x.foobar。如果属性名字不存在,参数default将被返回。如果函数名不存在且没 有提供default参数,将触发AttributeError异常。globals()返回当前模块的全局变量字典。(如果在方法或函数中调用globals(),返回的 是定义该方法或函数的模块的全局变量字典,而不是调用该函数或方法的所在的模 块(的全局变量字典)hasattr(object,name)判断对象是否存在指定名字的属性。(hasalLr通过调用geLaLLr(object,nam

20、e),根据是否抛出异常来判断属性名是否存在)hash(object)返回对象的哈希值。哈希值是整数。它被应用于字典的键,在查找的时候进行 快速比较。数值对象的哈希值与值相同(即使他们有不同的类型,如:Hash(1.0)=1.0#Truehash(1.0)=hash(l)#True)help(object)调用系统帮助。(该函数可以与系统进行交互)。如果没有提供参数,交互式帮 助系统帮助将在解析器控制台上启动。如果参数是一个字符串,它将作为模块、函 数、类型、方法、关键字或文件主题的名称查询,并将相关帮助信息显示到控制台 上;如果参数是其他类型的对象,对象的帮助信息将创建(并显示在控制台上)。该

21、 函数通过site模块被添加到内建命名域内。该函数是在2.2版本中新增的。hex(x)获取一个整数的十六进制字符串表示。结果是一个合法的Python表达式。2.4 版本之前只返回一个无符号字面值。id(object)返回对象的标识符(identity)。标识符是一个整数(或长整数),在对象生命周 期内保证唯一且不会改变。不重叠作用域内的两个对象可能会有一样的标识符。(当前实现中,标识符返回对象在内存中的地址。)input(prompt)相当于 eval(raw_input(prompt)警告:该函数无法保证用户输入的内容是合法的,它期望一个合法的Python表达式 作为输入,如果输入有语法错误

22、,将触发SyrilaxError。在求值期间出现的其他错 误也会触发相应的异常。(另一方面,在写一些快速脚本作为高级应用时,这个函 数非常有用。)如果已经加载了 readline模块,input。函数将使用该模块提供复 杂的行编辑和记载功能。应当考虑使用raw_input()函数来获取用户的一般性输 入。int(x,radix)将一个字符串或数值转换为一个普通整数。如果参数是字符串,那么它可能包 含符号和小数点。参数radix表示转换的基数(默认为10进制),它可以是2,36 范围内的值,或者0。如果为0,系统将根据字符串的内容来解析。如果提供了参 数radix,但参数x并不是一个字符串,将抛

23、出TypeError异常;否则,参数x必 须是数值(普通整数,长整数,浮点数)。通过舍去小数来转换浮点数。如果结果超 出了普通整数的表示范围,一个长整数被返回。如果没有提供参数,函数返回0。关于整数类型,可以参考:Numeric Types-int,float,long,complex,isinstance(object,classinfo)如果对象是类型的实例,或该类型派生类的实例,则返回True;如果参数 classinfo是类型对象(type object)同时参数object是类对象或派生类的对象,也返回True。(译者注:如:isinstance(A,type回)。如果参数objec

24、t不是类实 例或不是给定类型的实例,函数将返回Falseo如果参数classinfo不是一个类,类型或 关于类、类型的元组(译者注:如:(ClassA,ClassB),或其他相关元组,将触发TypeError异常。在2.2版本中 添加了对类型信息元组的支持。issubclass(class,classinfo)如果参数class是参数classinfo的子类,返回True。一个类被认为是它自己 的子类(译者注:issubclass(ClassA,ClassA)返回 True)。参数 classinfo 可以是 多个类对象(class object)的元组,在这种情况下,元组中的每个类都会被检查

25、。iLer(o,senlinel)返回一个iterator对象。该函数对于第一个参数的解析依赖于第二个参数。如果没有提供第二个参数,参数。必须是一个集合对象,支持编历功能(_iter_()方法)或支持序列功能(_getitem_()方法,参数为整数,从。开始),如果不支持 这两种功能,将触发TypeError异常。如果提供了第二个参数,参数。必须是一个 可调用对象。在这种情况下创建一个iterator对象,每次调用iterator的next()方法来无参数的调用o,如果返回值等于参数sentinel,触发Stopiteration异 常,否则将返回该值。该函数是2.2版本中新增的。len(s)

26、返回对象的长度。参数可以是序列类型(字符串、元组或列表)或映射类型(如 字典)。list(iterable)list的构造函数。参数iterable是可选的,它可以是序列,支持编译的容器 对象,或iterator对象。该函数创建一个元素值,顺序与 参数iterable一致的 列表。如果参数iterable是一个列表,将创建该列表的一个拷贝并返回,就像语 句 iterable:。例如:list(abc)返回,b,range(10)0,1,2,3,4,5,6,7,8,9 range(1,11)2,3,4,5,6,7,8,9,10 range(0,30,5)0,5,10,15,20,25 range

27、(0,10,3)0,3,6,9 range(0,-10,-1)0,-1,-2,-3,-4,-5,-6,-7,-8,-9 range(0)口 range(1,0)口raw_input(prompt)如果提供了 prompt参数,它将被写入到标准输出(结尾没有换行符),函数然 后从输入中读一行数据,转换成字符串(去除结尾的换行符)并返回。当读取EOF 口寸,将触发EOFError异常。下面是一个例子:s=raw_input(J-)一 Monty Pythons Flying Circus s“Monty Pythons Flying Circus”reduce(function,iterable,

28、initializer)reload(module)重新加载先前导入(imported)的模块。参数是模块对象,所以该模块必须在之 前成功的导入。R eload在这种情况下非常有用:程序在运行过程中模块源代码发生 改变,让Python解析器擅自加载最新版本代码。函数的返回值是模块对象。当reload(module)执行时:Python模块的代码被重新编译,模块级(modulelevel)的代码被重新执行,定义新的对象信绑定到模块字典,而扩展模块的初始化 函数将不会被再次调用。就如Python中其他对象一样,原有模块的一些对象只有在其引用计算为0的 时候才会被回收。模块内的名称被更新,用于表明任

29、何新的或改变的对象。对原 有对象的引用不会重新绑定引用到新的对象。repr(object)返回一个对象的字符串表示。有时可以使用这个函数来访问操作。对于许多类 型来说,repr()尝试返回一个字符串,eval()方法可以使用该字符串产生对象;否 则用尖括号括起来的,包含类名称和其他额外信息(如:对象名字,在内存中的地址)的字符串被返回。类可以通过定义_repr_()方法来控制它的对象的输出。reversed(seq)返回一个逆序的iterator对象。参数seq必须是一个包含reversed()方 法的对象或支持序列操作(len()和getitem()该函数是2.4版本中新增的。round(x

30、,n)对参数x的第n+1位小数进行四舍五入,返回一个小数位数为n的浮点数。参数n的默认值是0。结果是一个浮点数。如:round(0.5)结果为1.0set(iterable)setattr(object,name,value)该方法与getattr()相对应。参数分别是一个对象、字符串和值。字符串可能 是一个存在的属性名或一个新的属性名,该函数将值赋给对象的属性。如:setattr(x,fllbar,123)等价于 x.foobar=123。slice(start,sLop,step)sorted(iterable,cmp,key,reverse)staticmethod(function)返

31、回一个静态方法。静态方法不显式的接收第一个参数(作为类型)。使用下面 的语法声明一个静态方法:lass C:staticmethoddef f(argl,arg2,):可以在类中调用静态方法(如:C.f(),也可以在对象上调用(如:C().f()。Python中的静态方法与java或C+中的静态方法类似,更详细的信息,可以 参考:classmethod()该函数是2.2版本中新增的。str(object)获取对象的字符串表示。对于字符串参数,函数直接返回。R epr()与str()之 间的不同在于:str()返回的字符串可能不被eval()所接收求值,而仅仅返回一个 可打印的字符串。如果没有提

32、供参数,空字符串将被返回。sum(iterable,start)先计算可编历对象中的元素之和,再与start相加。参数start的默认值为Oo可编历对象的元素通过是数字,不能为字符串。通过调用.join(sequence)可以快速正确的连接一 个字符串序列。注意:sum(range(n),m)等价于:reduce(operator,add,range(n),m)o对高精度的浮点数进行求和时,可以使用math.fsum().super(type,object-or-type)返回一个可以通过委托方法调用父类型或兄弟类型的代理对象。在重写方法中 使用它来访问父类中的虚方法,tuple(iterab

33、le)返回一个元组,它的元素值及元素的顺序与iterable中的一致。参数 iterable可以是一个序列,或者iterator对象。如果iterable本身也是一个元 组,它将被原封不支的返回。例如:tuple(abc)将返回(a,class X(object):.a=1 X=type(X,(object,),diet(a=l)unichr(i)返回整数的unicode字符串。如:unichar(97)返回字符串u,a。unicode(object,encoding,errors)vars(object)如果没有提供参数,返回一个表示当前局部变量表的字典。如果输入 个模块 对象、类对象或类实

34、例对象(或其他任何含有_dict_属性的东西),返回一个表示 该对象变量表的字典。xrange(start,stop,step)这个函数与range。非常像,但它返回一个xrange对象而不是列表。这是一个 不透明的序列对象,可以产生像对应列表一样的值但不同口寸保存它们(在内存里)o Xrange相比于range的优点在于:使用xrange占用的内存更少。zip(iLerable,.)函数返回一个元组列表,其中第n个元组的元素由所有参数序列的第n个元素 组成。返回列表的长度等于参数中长度最短的序列的长度。如果多个参数序列的长 度一致,那么zip()如果只有一个参数,那么返回的序列中,元素的长度为1。如 果没有提供参数,返回一个空列表。X=1,2,3 y=:4,5,6 zipped=zip(x,y)zipped:(1,4),(2,5),(3,6)x2,y2=zip(*zipped)x=x2,y=y2True该函数是2.。版本中新增的。在2.4版本之前,调用zip()时至少要提供一个 参数,否则将触发TypeError异常。_import_(name,globals,locals,fromlist,level)这是个高级函数,在平常编程中很少用到。使用import语句加载模块时会 调用该函数。很少直接使用_import_()函数,除非模块的名称在运行时得到。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      联系我们       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服