pythonlib基础库.docx

上传人:b****4 文档编号:3583542 上传时间:2022-11-24 格式:DOCX 页数:17 大小:32.12KB
下载 相关 举报
pythonlib基础库.docx_第1页
第1页 / 共17页
pythonlib基础库.docx_第2页
第2页 / 共17页
pythonlib基础库.docx_第3页
第3页 / 共17页
pythonlib基础库.docx_第4页
第4页 / 共17页
pythonlib基础库.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

pythonlib基础库.docx

《pythonlib基础库.docx》由会员分享,可在线阅读,更多相关《pythonlib基础库.docx(17页珍藏版)》请在冰豆网上搜索。

pythonlib基础库.docx

pythonlib基础库

1:

argv

传递给python脚本的命令行参数列表,argv[0]是脚本的名字(他是平台独立的,不管他是一个路径全名或不是),如果使用了-c参数选项,argv[0]会被设置为字符串'-c',如果没有脚本名传递给python解释器,argv[0]的长度为0。

2:

byteorder

本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little',我猜大概意思是值,有的系统读取字节的时候从高位读,有的从低位开始读,所以就出现了这个变量。

3:

builtin_module_names

一个字符串的元组,这些字符串代表着所有被编译进解释器的模块的名字(这些信息通过别的途径是不能得到的,--modules.keys()只会得到所有导入的模块的名字的列表而已)

4:

copyright

不用解释了吧,但他也是个量,里面记录着一些版权相关的冬冬

5:

dllhandle

一个整数能代表python对于windows平台的DLL的操纵==不懂。

==

6:

displayhook(value)

如果value非空,这个函数会把他输出到sys.stdout,并且将他保存进__builtin__._,先开始有点不懂,后来看到'_'就明白了,他是指在python的交互式解释器里,'_'代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来,和~~,原来他不但是内置的,而且他的真正位置原来是sys模块的,和~~

7:

excepthook(type,value,traceback)

这也是个钩子,用来钩出当出现错误时,代表错误的三个属性。

即:

错误的类,错误的实体对象和trackback对象,比如说:

>>>1/0

Traceback(mostrecentcalllast):

File"",line1,in-toplevel-

1/0

ZeroDivisionError:

integerdivisionormodulobyzero

还有在一段交互式的代码段里,他会在下一个提示符输出前发生,而在一个python程序里,他会在程序结束的时候发生,较高级别的错误处理(即如果自己需要)可以通过自己构造一个象这样的三参数函数来处理。

8:

__displayhook__;;__excepthook__

这些对象包涵了在程序开始的时候displayhook,excepthook的原始值,他们的存在是以便当程序出错后能够重现错误的详细信息,==大概是为了存储错误信息而设立的变量吧,==

>>>printsys.__displayhook__

看来他是内置函数

9:

exc_info()

收集了当前指向的错误的错误信息,三个值的元组,返回的信息是当前线程和当前堆栈帧的细节,如果当前堆栈帧没错误,那回正在被调用的堆栈帧的信息,也就是说他的调用会一直持续到他发现错误为止。

如果至尾都没发现错误,返回的元组的三个值==None,(type,value,traceback)

如果exc_clear()被调用了,exc是exception,他会返回三个None,直到当前线程的另外一个错误产生了,或者theexecutionstackreturnstoaframewhereanotherexceptionisbeinghandled.==不懂这句==

这里还有个warning:

通过函数将traceback的返回值赋给本地的一个变量想操纵错误信息会引起递归调用,==大概是无限的吧==,这会阻止这个函数调用其他的变量,或者会阻止垃圾收集器收集垃圾,==这样内存大概不能得到释放吧==,所以这里有个建议:

因为大多数函数都不会用到traceback,所以最好的办法是使用那些想exctype,value=sys.exc.info()[:

2]来导出前两个信息,如果确实需要用到traceback,那么你最好在使用过后删除他(最好是用:

try...finally),或者调用exc_info()的时候不用这个函数来操作exception。

这里还有个NOTE:

从2.2版开始,象这些无限循环会自动被垃圾收集器回收的,所以你所调用的这样得到函数会得不到你想要的那些功能,但能避免则避免之最好·~

10:

exc_clear()

这个函数是用来清除当前线程所出现的当前的或最近的错误信息的,调用后exception的三个信息当然是None了,但当调用过后再出现错误,他就管不到了,

这个函数通常使用的很少,这些很少的情况自己感兴趣可以看看

11:

exc_type;;exc_value;;exc_traceback

这三个就是上面提到的那三个错误信息的参数了,需要注意的是,因为他们是全局变量,所以他们不是专门属于哪个线程的,在多线程的程序里要注意安全拉。

如果没有如何错误被操纵,exc_type是None,其他两个没有定义

12:

exec_prefix

是一个字符串,内容是平台独立的python文件安装的位置,默认的是'/usr/local'==大概是对linux系统而言的吧==,他可以在安装python的时候设置,configure脚本里添上--exec-prefix参数,具体点,所有的configuration文件(如:

pyconfig.h头文件)都在这个目录下:

exec_prefix+'/lib/pythonversion/config',而共享库模块在:

exec_prefix+'/lib/pythonversion/lib-dynload'下,此处的version等同于version[:

3]

13:

executable

一个字符串,给出可以供python解释器执行的二进制文件的名字,二进制代码在哪个系统中都是可执行的,

14:

exit([arg])

从python中退出,其实就是丢出SystemExit错误,然后清除一切,不过try...finally块里的finally还是要执行,然后才退出,所以在这个块里可以截获exit,===这里我不知道在finally块里截获还是在外层的块里就可以截获====可选参数arg可以是整数,标志exit的状态(默认的是0),也可以是其他对象,如果是整数0表示正常中止,如果是非0的,表示异常中止,大部分系统要求他的值在0-127之间,如果是没定义的冬冬,将会导致其他的结果,有些系统有不同的方式去定义exit命令,但是这些都是不怎么流行的,也就是不被人使用的;Unix程序一般使用2表示命令行语法错误,1表示所有的其他错误。

如果其他类型的对象作为arg。

None等同于0,其他的会在标准输出终端(sys.stderr)输出,并且exit的arg置为1,特别的,当一个error产生时,sys.exit("错误信息")是一个快速退出程序的方法。

15:

exitfunc

这个值没有被sys模块确切的定义,但是可以被你自己或者由一个程序设定,用来在程序退出的时候作一些收尾动作,当设置的时候要注意,他必须是一个无参函数,这个函数将在结束解释器的时候调用,而且也只能有一个这样的函数,如果想要引用多个函数,最好使用anexit模块,不然会中止不给执行。

注意:

这个函数只有在程序退出的时候,或者python解释器产生了一个致命的内部错误,再或者当os.exit()被调用的时候才被执行。

16:

getcheckinterval

返回由setcheckinterval()设置的值,看下面的set..

17:

getdefaultencoding()

返回当前你所用的默认的字符编码格式,

>>>sys.getdefaultencoding()

'ascii'我默认用的是ascii

18:

getdlopenflags()

对unix有用,返回调用dlopen()得到的当前flags值,flag常量在dl和DLFCN模块中有定义,

19:

getfilesystemencoding()

>>>sys.getfilesystemencoding()

'mbcs'#windowsxpsp2+得系统

返回将Unicode文件名转换成系统文件名的编码的名字,值取决于系统,如果你的系统用的是Unicode,他的值是None,下面有介绍:

OnWindows9x,theencodingis``mbcs''.

OnMacOSX,theencodingis``utf-8''.

OnUnix,theencodingistheuser'spreferenceaccordingtotheresult

ofnl_langinfo(CODESET),orNoneifthenl_langinfo(CODESET)failed.

OnWindowsNT+,filenamesareUnicodenatively,sonoconversionisperformed.

getfilesystemencodingstillreturns``mbcs'',asthisisthe

encodingthatapplicationsshouldusewhentheyexplicitlywant

toconvertUnicodestringstobytestringsthatareequivalentwhenusedasfilenames.

20:

_getframe([depth])

通过这个函数可以得到一个depth深度的堆栈(已经存在的)的引用,如果depth大于这个堆栈的深度,那么抛出ValueError,depth默认是0,返回这个帧的顶层指针,===我猜的,大概应该也许可能是这样吧====

21:

getwindowsversion()

顾名思义吧

>>>sys.getwindowsversion()

(5,1,2600,2,'ServicePack1')#靠,竟然是sp1,我在上面还说我的是sp2+呢,大概我是通过

#sp1加补丁升级到sp2+相同的功能吧

这里有个列表:

VER_PLATFORM_WIN32sWin32sonWindows3.1

VER_PLATFORM_WIN32_WINDOWSWindows95/98/ME

VER_PLATFORM_WIN32_NTWindowsNT/2000/XP

VER_PLATFORM_WIN32_CEWindowsCE

22:

hexversion

>>>sys.hexversion

33817025

这是我得到的结果,不知道干什么用的,16进制版本?

是不是说版本用16进制数表示的啊?

再来一个:

>>>hex(sys.hexversion)

'0x20401c1'

23:

last_type;;last_value;;last_traceback

这三个怎么跑到这儿来了,干什么的?

这三个变量不总是存在的,当一个错误出现,在输出端也输出了却没有得到处理时他们就是那个错误的存储地了,他们最有可能用到的地方就是调试了,==你每天在IDLE里看到的红字错误就是调试了==,这里还介绍了一些东西我不知道了:

andengageinpost-mortemdebuggingwithouthavingtore-executethecommandthatcausedtheerror.(Typicaluseis"importpdb;pdb.pm()"toenterthepost-mortemdebugger;seechapter9,``ThePythonDebugger,''formoreinformation.)

>>>importpdb

>>>pdb.pm()

>

(1)?

()

(Pdb)dsf

***NameError:

name'dsf'isnotdefined

(Pdb)x=0

(Pdb)x

0

(Pdb)1/0

***ZeroDivisionError:

integerdivisionormodulobyzero

有谁知道的说两句撒~~~如果想退出ctl+D拉

24:

maxint;;maxunicode

>>>sys.maxint

2147483647

>>>sys.maxunicode

65535

这里就不介绍了

25:

modules

是个字典,里面是映射的是已经导入的模块的名字和他的路径,这个对重载模块有帮助,注意:

从这个字典里移除模块不同于从相应模块对象里调用reload(),==也许翻译的不对==

26:

path

一个链表,详细的描述了搜索模块的路径,被环境变量PYTHONPATH初始化,默认的增加一个独立的安装路径。

当程序开始进行初始化的时候,这个链表的第一项path[0],是包涵调用程序的解释器的脚本的文件路径,如果脚本路径不可用(如:

解释器交互地调用,或者脚本从标准输入端读取),path[0]是一个空字符串,他告诉python首先在当前文件夹去寻找模块,需要注意的是脚本路径先入口路径插入PYTHONPATH==此处不懂==

任何程序可以随意修改这个链表以达到自己的目的,2.3有修改,Unicode字符串不再做忽略处理

27:

platform

一个字符串标志表示系统平台的标志,例如:

'sunos5','linux1',这个信息可以用来指导你该添加些特定平台的构件,

28:

prefix

一个字符串给出特定平台下,python被安装的路径前缀,默认的是'/user/local',这个可以在安装python的时候加上--prifix参数来配置脚本,python模块库的主收藏夹是prefix+'/lib/pythonversion',而平台独立的头文件被存在prefix+'include/pythonversion'这里的version等于version[:

3]

29:

ps1;;ps2

他们是字符串,一个是主提示符,一个是次提示符,这些只在解释器交互模式下才能起作用,他们的默认值是'>>>'and'...',但是在IDLE下好像不起作用,在xp的伪DOS下运行python会立即得到效果,总之通过他们可以修改提示符的显示

30:

setcheckinterval(interval)

用来设置解释器的“检测时间间隔”,这个整数值决定了解释器检测周期性的事情如线程,信号等的频率,默认的是100,意思是指他会在每100个python虚拟指令周期进行检测,加大数值可能会加长程序使用线程的时间,设为<=0的数的话,他会在每个可用的指令周期进行检测

31:

setdefaultencoding(name)

用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出LookupError,这个函数只会被site模块的sitecustomize使用,一旦别site模块使用了,他会从sys模块移除

32:

setdlopenflags(n)

设置flags(被dlopen()调用),例如当解释器导入外部模块时。

对于其他情况:

调用sys.setdlopenflags(0),当导入模块时可以懒散的解析符号,==这里不懂,按字面翻译的===,调用sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)可以跨模块共享符号,这里的n可以从dl模块得到帮助,或者从DLFCN模块得到帮助,如果DLFCN不可用,他可以使用h2py脚本从/usr/include/dlfcn.h产生,对unix可用

33:

setprofile(profilefunc)

设置系统的配置(不知道这里的profilefunction时什么意思,也许是模拟,大概是对系统函数的调用接口进行python化的转变吧)函数,通过他可以得到系统函数python式的源代码,系统的profilefunction的调用有点类似系统的跟踪函数(参考settrace()),但是他不会调用可执行的行代码(只是调用然后返回结果,就算是已经设置了一个错误,他也会执行返回事件),这种函数是一个特殊的线程,但是不能把他当线程,因为你没办法控制他和别的线程之间联系,因此在使用多线程面前是没有意义的,另外,itsreturnvalueisnotused,因此他能简单的返回None,profile参考第10章

34:

setrecursionlimit(limit)

设置解释器递归调用时最多可以使用的堆栈的深度,这样可以阻止那些无限递归导致溢出,这个limit值时平台独立的,如果一个程序需要深度递归并且平台也支持大值的limit时你可以将limit值设置大点,但需要注意的是,如果太大了的话,会导致系统资源占尽从而崩溃。

35:

settrace(tracefunc)

设置系统的跟踪函数,他允许你在python里使用python源代码调试器,参考这章的9.2节关于python调试的'howitwork',他也是个特殊的线程,支持多线程的调试器,但必须为每个要调试的线程使用settrace()注册,

注意:

settrace()只用在调试器,profilers,coveragetools或者类似的方面,他的行为是属于运行的平台,而不是属于语言定义,所以他不一定对所有的python运行都可用。

36:

settscdump(on_flag)

不知道。

因为不能理解,VM是不是指虚拟内存?

如果on_flag=ture,除去对虚拟内存大小的限制,如果时false,就不激活这些限制,这个函数只有当你在python在被编译时加上一个参数--with-tsc才可用,想要了解这些限制的出处,请参考python源代码里的python/ceval.c

37:

stdin;;stdout;;stderr

解释器的相应的标准输入,输出和错误流的文件对象,stdin用于解释器所有的输入除了脚本,但脚本可以使用input()andraw_input(),stdout用于输出打印和表达式结果的输出,也用于输出input(prompt),raw_input(prompt)中的prompt的输出,解释器自身的提示符和几乎所有的错误消息都要使用到stderr.stdout,还有,stderr不需要被内置进文件对象:

所有的对象只要有write(sting)方法,那么他们都是可以接收输入的,(所有这些对象的改变不会影响到os模块的os.popen(),os.system(),orexec*()或者类似的函数的标准输入输出流的处理)

38:

__stdin__;;__stdout__;;__stderr__

这些对象包涵着程序开始时stdin,stdout,stderr的原始值(不知道初始值是不是更好?

),他们在程序开始到程序启动好期间起作用,他们对文件的恢复有帮助,有些被破坏的文件覆盖了的已知的文件,就可以用实际文件去恢复他。

39:

tracebacklimit

当这个变量被设为一个整数值,这个整数决定了如果一个没被处理的错误出现时,可以被打印输出的traceback信息的最大层数,默认值是1000,当被设为0或比0小的值,所有的traceback信息都被压制,只有错误信息的类型和值被打印输出。

>>>sys.tracebacklimit=0

>>>1/0

Traceback(mostrecentcalllast):

**IDLEInternalException:

ZeroDivisionError:

integerdivisionormodulobyzero

>>>sys.tracebacklimit=5

>>>1/0

Traceback(mostrecentcalllast):

File"",line1,in-toplevel-

1/0

ZeroDivisionError:

integerdivisionormodulobyzero

40:

version

'version(#build_number,build_date,build_time)[compiler]'

这个是我当前的python版本:

>>>sys.version

'2.4.1c1(#63,Mar102005,10:

36:

41)[MSCv.131032bit(Intel)]'.

这个是书册里的举的例子的python版本:

'1.5.2(#0Apr131999,10:

51:

12)[MSC32bit(Intel)]'

比较一下就知道是干什么的了

41:

api_version

解释器的C的API版本,这对于那些想调试在python和扩展模块之间的版本冲突的程序员有帮助

42:

version_info

>>>sys.version_info

(2,4,1,'candidate',1)

这是我的2.4.1版本的信息,candidate是候选的意思,也有的是'final',表示最终,

对应的意思:

主,次,微,版本级别,是否有后继的发行

43:

warnoptions

这是警告框架的一个运行细节,不要改变他的值,参考warnings模块以得到更多关于warningsframework的信息

44:

winver

在windows平台注册的python版本号,他的值通常是version字符集的前三个,在sys模块提供这个的目的是为了方便得到一些信息,改变这个值对被python使用的注册键值没有任何影响。

最后:

参考模块site:

他描述了怎么使用.pth文件去扩展sys.path

这个模块提供各种有关时间的函数,他们都是可以用的,但不是所有的函数对所有的运行平台都管用,这个模块的大部分函数名和C库相同作用的函数同名,有时候这样也许对平台的文件系统有帮助,因为在不同的平台时间的调用有点不同===这些意思大概是说各种系统对C的支持比较好,所以python里对时间的调用就用了C的调用方法,这样对跨平台有帮助===

下面做一些说明,是关于一些有关时间的统一的习惯和术语:

1:

新纪元是时间的开始,那年的一月一号0点,从那个时候开始的时间定义为0;,unix里。

新纪元是1970年,如果你想知新纪元是什么时候,导入time模块,然后调用time.gmtime(0)看看就可知道

2:

这个模块得函数不能得到新纪元之前,也不能得到未来得很长的时间,得到的时间段是决定于C库的,如unix,它的未来时间只能得到2038年。

3:

Y2K问题:

python决定于C库,所以它一般不会有千年虫问题,因为时间都被解释成从1970年开始到现在的秒数。

而调用的时候年都是4位的,如2005,那是从秒数处理过来的,因为各种函数如果接受时间参数的话都是4位的格式。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1