版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PythonPythonPythonPython換行(\n)是標(biāo)準(zhǔn)的行分隔符(通常一個(gè)語(yǔ)句一行首要說(shuō)明的事情是:盡管Python是可讀性最好的語(yǔ)言之一,這并不意味著程序員在代碼中就可以不寫(xiě)注釋。和很多Unix類(lèi)似,Python注釋語(yǔ)句從#字符開(kāi)始,注釋可以在一行的任何地方開(kāi)始,解釋器會(huì)忽略掉該行#之后的所有內(nèi)容。要正確的使用注釋。#check(shark_warnings==0):#displayastringwithtriplequotesprint'''hithere,thisisalongmessageforyouthatgoesovermultiplelines...youwillfindoutsoonthattriplequotesinPythonallowsthiskindoffun!itislikeadayonthe#setsomego_surf,get_a_tan_while,boat_size,toll_money=(1,'windsurfing',40.0,-代碼組由不同的縮進(jìn)分隔2.10Python風(fēng)格:縮進(jìn)四個(gè)空格寬度,避免使用制表符對(duì)一個(gè)初次使用空白字符作為代碼塊分界的人來(lái)說(shuō),遇到的第一個(gè)問(wèn)題是:縮進(jìn)多大寬度才合適??jī)蓚€(gè)太少,六到八個(gè)又太多,因此我們推薦使用四個(gè)空格寬度。需要說(shuō)明一點(diǎn),不同的文本編輯器中制表符代表的空白寬度不一,如果你的代碼要跨平臺(tái)應(yīng)用,或者會(huì)被不同的編輯器讀寫(xiě),建議你不要使用制表符。使用空格或制表符這兩種風(fēng)格都得到了Python創(chuàng)始人GuidovanRossum的支持,并被收錄到Python代碼風(fēng)格指南文檔。在本章第3.4小節(jié)中你會(huì)看到同樣的建議。Cif最后一點(diǎn),由于Python只使用縮進(jìn)方式表達(dá)代碼塊邏輯,因此“神圣的大括號(hào)”不會(huì)發(fā)生在Python身上。C、C++和Java語(yǔ)言中,開(kāi)始大括號(hào)可以在第一行的尾部,也可以在第同一行書(shū)寫(xiě)多個(gè)語(yǔ)句(;)importsys;x='foo';sys.stdout.write(x+必須一點(diǎn),同一行寫(xiě)多個(gè)語(yǔ)句會(huì)大大降低代碼的可讀性,Python雖然允許但不模每一個(gè)Python文件都可以被當(dāng)成是一個(gè)模塊。模塊以磁盤(pán)文件的形式存在。當(dāng)一個(gè)模塊代碼可以是一段直接執(zhí)行的,也可以是一堆類(lèi)似庫(kù)函數(shù)的代碼,從而可以被別的模塊導(dǎo)入Python語(yǔ)言中,等號(hào)(=)是主要的賦值運(yùn)算符。(其他的是增量賦值運(yùn)算符,參見(jiàn)下節(jié)anInt=-12aString='cart'aFloat=-3.1415*(5.0**2)anotherString='shop'+aList=[3.14e10,'2ndelmtofalist',8.82-楚,也不用著急。在本章的后面部分,我們還會(huì)再討論這個(gè)話(huà)題,現(xiàn)在你只需要有這么一個(gè)>>>x=>>>y=(x=x+1) #assignmentsnotexpressions!File"<stdin>",line1y=(x=x+1)^SyntaxError:invalid鏈?zhǔn)劫x值沒(méi)問(wèn)題,看(本章稍后部分會(huì)給出的例子>>>y=x=x+>>>x,y(2,2)邊的變量。這被稱(chēng)為增量賦值,類(lèi)似下面這樣的語(yǔ)句:x=x+x+=-中的A)僅被處理一次??勺儗?duì)象會(huì)被就地修改(無(wú)修拷貝),不可變對(duì)象則和A=A+B(分配一個(gè)新對(duì)象),A>>>m=>>>m%=>>>m**=>>>aList=[123,>>>aList+=>>>[123, Pythonx++x>>>x=y=z=>>>1在上面的例子中,一個(gè)值為1的整數(shù)對(duì)象被創(chuàng)建,該對(duì)象的同一個(gè)被賦值給x、y和z。也就是將一個(gè)對(duì)象賦給了多個(gè)變量。當(dāng)然Python當(dāng)中,將多個(gè)對(duì)象賦給多個(gè)變量也是“多元”賦值另一種將多個(gè)變量同時(shí)賦值的方法我們稱(chēng)為多元賦值(multuple)。這不是Python術(shù)語(yǔ),而是"mul-tuple"連在一起自造的。因?yàn)椴捎眠@種方式賦值時(shí),等號(hào)兩邊的對(duì)象都是元組(我們?cè)?.8節(jié)講過(guò)元組是一種Python基本數(shù)據(jù)類(lèi)型)。>>>x,y,z=1,2,'a>>>1>>>'a(值分別為12)x,yz。通常元組需要用圓括號(hào)(小括號(hào))括起來(lái),盡管它們是可選的。我們建議總是加上>>>(x,y,z)=(1,2,'aCtmp/*C語(yǔ)言中兩個(gè)變量交換*/tmp=x;x=y;y=tmp;Python#swavariablesin>>>x,y=1,>>>x,y=y,標(biāo)識(shí)符言的標(biāo)識(shí)符。這樣的標(biāo)識(shí)符是不能做它用的標(biāo)識(shí)符的,否則會(huì)引起語(yǔ)法錯(cuò)誤(SyntaxError異Pythonbuilt-in的名字(見(jiàn)3.3.3)。合法的Python標(biāo)識(shí)第一個(gè)字符必須是字母或下劃線(xiàn)關(guān)鍵字Python的關(guān)鍵字列在表3.1中。一般來(lái)說(shuō),任何語(yǔ)言的關(guān)鍵字應(yīng)該保持相對(duì)的穩(wěn)定,但是因?yàn)镻ython是一門(mén)不斷成長(zhǎng)和進(jìn)化的語(yǔ)言,關(guān)鍵字列表和iskeyword()函數(shù)都放入了keywordE書(shū)家E書(shū)家 了內(nèi)built-inbuiltins模塊的成員,在你的程序開(kāi)始或在交互Python下劃線(xiàn)標(biāo)識(shí)符 不用'frommoduleimport*xxx系統(tǒng)定義名字 風(fēng)格:避免用下劃線(xiàn)作為變量名的開(kāi)始因?yàn)橄聞澗€(xiàn)對(duì)解釋器有特殊的意義,而且是內(nèi)建標(biāo)識(shí)符所使用的符號(hào),我們建議程序員避免用下劃線(xiàn)作為變量名的開(kāi)始。一般來(lái)講,變量名_xxx被看作是“私有的”,在模塊或類(lèi)外不可以使用。當(dāng)變量是私有的時(shí)候,用_xxx來(lái)表示變量是很好的。因?yàn)樽兞棵鹸xx對(duì)Python來(lái)說(shuō)有特殊含義,對(duì)于普通的變量應(yīng)當(dāng)避免這種命名風(fēng)格?;撅L(fēng)格指南注文Python還提供了一個(gè)機(jī)制,可以通過(guò)doc特別變量,動(dòng)態(tài)獲得文檔字串。在模塊,類(lèi),或函數(shù)中第一個(gè)沒(méi)有賦值的字符串可以用屬性obj.doc來(lái)進(jìn)行,其中obj縮1或 可能不夠,很難確定代碼語(yǔ)句屬于哪個(gè)810可能太多,如果代碼內(nèi)嵌的層次太多,就會(huì)使得代碼很難閱讀。四個(gè)空格非常的流行,更不用說(shuō)PythonTab使用Tab,如果您的代碼會(huì)存在并運(yùn)行在不同的平臺(tái)上,或者會(huì)用不同的文本編輯器打開(kāi),推薦您不要使用Tab。選擇標(biāo)識(shí)符名稱(chēng)長(zhǎng)度對(duì)于今天的編程語(yǔ)言不再是一個(gè)問(wèn)題,但是使用簡(jiǎn)短的名字依然是個(gè)好,這個(gè)原則同樣使用于模塊(Python文件)名。Python指GuidovanRossum在多年前寫(xiě)下Python代碼風(fēng)格指南目前它已經(jīng)被至少三個(gè)PEP代替:7(C代碼風(fēng)格指南)、8(Python代碼風(fēng)格指南)和257(文檔字符串規(guī)范)。這些PEP被歸檔、并定期更新。漸漸的,你會(huì)聽(tīng)到“PythonicPython邏輯,及對(duì)象行為。時(shí)間過(guò)后,你才會(huì)真正理解它的含義。PEP20寫(xiě)的是Python之禪,就從你的Python解釋器輸入importthis然后回車(chē)。下面是一些網(wǎng)上資源:模塊結(jié)構(gòu)和布局#(1)起始行(2)#####圖3–1一個(gè)典型模塊的結(jié)構(gòu)圖解簡(jiǎn)要介紹模塊的功能及重要全局變量的含義,模塊外可通過(guò)module.
的模塊導(dǎo)入代碼不會(huì)被執(zhí)行,除非該函數(shù)正在執(zhí)行。的文檔變量是class.doc。此處定義的函數(shù)可以通過(guò)module.function()在外部被到,當(dāng)模塊被導(dǎo)入時(shí)def語(yǔ)句會(huì)被執(zhí)行,函數(shù)也就都會(huì)定義好,函數(shù)的文檔變量是function.doc。Figure3–1TypicalPythonfile推薦代碼風(fēng)格:主程序調(diào)用main()函數(shù)主程序代碼通常都和你前面看到的代碼相似,檢查 變量的值然后再執(zhí)行相應(yīng)的調(diào)用(參閱下一頁(yè)的筆記)。主程序中的代碼通常包括變量賦值,類(lèi)定義和函數(shù)定義,隨后檢查 來(lái)決定是否調(diào)用另一個(gè)函數(shù)(通常調(diào)用main()函數(shù))來(lái)完成該模塊的功能。主程序通常都是做這些事。(我們上面的例子中使用test()而不是main()是為了避免你在讀到心筆記前感到迷惑。)不管用什么名字,我們想強(qiáng)調(diào)一點(diǎn)那就是:這兒是放置測(cè)試代碼的好地方。我們?cè)?.4.2小節(jié)中曾經(jīng),大部分的Python模塊都是用于導(dǎo)入調(diào)用的,直接運(yùn)行模塊應(yīng)該調(diào)用該模塊的回歸測(cè)試代碼。 序的模塊會(huì)被直接執(zhí)行,或由用戶(hù)通過(guò)命令行執(zhí)行,或作為批處理執(zhí)行,Unixcron任務(wù)定時(shí)執(zhí)行,或通過(guò)Web服務(wù)器調(diào)用,或通過(guò)GUI執(zhí)行。就是說(shuō),那些沒(méi)有縮進(jìn)的代碼行在模塊被導(dǎo)入時(shí)就會(huì)執(zhí)行,不管是不是真的需要執(zhí)行。由于(參閱筆記了解信息筆記: 指示模塊應(yīng)如何被加由于主程序代碼無(wú)論模塊是被導(dǎo)入還是被直接執(zhí)行都會(huì)運(yùn)行,須知道模塊如何決定運(yùn)行方向。一個(gè)應(yīng)用程序可能需要導(dǎo)入另一個(gè)應(yīng)用程序的一個(gè)模塊,以便重用一些有用的代碼(否則就只能用拷貝粘貼那種非面向?qū)ο蟮挠薮?。這種情況下,你只想那些位于其它應(yīng)用程序中的代碼,而不是想運(yùn)行那個(gè)應(yīng)用程序。因此一個(gè)問(wèn)題出現(xiàn)了,“Python是否有法能在運(yùn)行時(shí)檢測(cè)該模塊是被導(dǎo)入還是被直接執(zhí)行呢?”答案就是. (鼓聲雷動(dòng))........沒(méi)錯(cuò)! ne 系統(tǒng)變量就是正確答案。如果模塊是被導(dǎo)入 的值為模塊名如果模塊是被直接執(zhí)行 的值為'main在主程序中書(shū)寫(xiě)測(cè)試代碼優(yōu)秀的程序員和軟件工程師,總是會(huì)為我們的應(yīng)用程序提供一組測(cè)試代碼或者簡(jiǎn)單。對(duì)那些僅僅為了讓別的程序?qū)攵鴦?chuàng)建的模塊來(lái)說(shuō),Python有效的簡(jiǎn)化了這個(gè)任務(wù)。這些模塊理論上不會(huì)被直接執(zhí)行,那么,在這個(gè)模塊被直接執(zhí)行時(shí)進(jìn)行系統(tǒng)測(cè)試豈不妙哉?設(shè)置起來(lái)難嗎?一點(diǎn)兒也不。記中提到如何判斷一個(gè)模塊是被直接運(yùn)行還是被導(dǎo)入。我們應(yīng)該利用name變量這個(gè)有利如果該模塊是被當(dāng)成運(yùn)行,就調(diào)用這個(gè)函數(shù)些測(cè)試代碼,以確認(rèn)修改沒(méi)有新問(wèn)題。只要堅(jiān)持這樣做,你的代碼就會(huì)足夠健壯,更不用在主程序中放置測(cè)試代碼是測(cè)試模塊的簡(jiǎn)單快捷的。Python標(biāo)準(zhǔn)庫(kù)中還提供了unittestPyUnit,unittest的范圍,不過(guò)當(dāng)需要對(duì)一個(gè)大系統(tǒng)的組件進(jìn)行正規(guī)系統(tǒng)的回規(guī)測(cè)試時(shí),它就會(huì)派上用場(chǎng)。細(xì)節(jié),包括:del大多數(shù)編譯型語(yǔ)言,變量在使用前必須先,其中的C語(yǔ)言更加苛刻:變量必須位C++Java,允許“隨時(shí)隨地”變量,比如,變量可以在代碼塊的中間,不過(guò)仍然必須在變量被使用前變量的名字和類(lèi)型。在Python中,無(wú)需此類(lèi)顯式變量語(yǔ)句,變量在第一次被賦值時(shí)自動(dòng)。和其他大多>>>Traceback(innermostlast):NameError:a>>>x=>>>y='thisisa>>>'thisisa程序的編寫(xiě)。你只需要關(guān)心你要解決的問(wèn)題,至于底層的事情放心交給Python解釋器去做就行了。計(jì)要保持追蹤內(nèi)存中的對(duì)象,Python使用了計(jì)數(shù)這一簡(jiǎn)單技術(shù)。也就是說(shuō)Python一個(gè)變量,稱(chēng)為一個(gè)計(jì)數(shù)器。至于每個(gè)對(duì)象各有多少個(gè),簡(jiǎn)稱(chēng)計(jì)數(shù)。當(dāng)對(duì)象被創(chuàng)建時(shí),就創(chuàng)建了一個(gè)計(jì)數(shù),當(dāng)這個(gè)對(duì)象不再需要時(shí),也就是說(shuō),這個(gè)對(duì)象的計(jì)數(shù)變?yōu)?時(shí),它被回收。(嚴(yán)格來(lái)說(shuō)這不是100%正確,不過(guò)現(xiàn)階段你可以就這么增 計(jì)當(dāng)對(duì)象被創(chuàng)建并(將其)賦值給變量時(shí),該對(duì)象的計(jì)數(shù)就被設(shè)置為1當(dāng)同一個(gè)對(duì)象(的)又被賦值給其它變量時(shí),或作為參數(shù)傳遞給函數(shù),方法或類(lèi)實(shí)例請(qǐng)看以下:x=y=語(yǔ)句x=3.14創(chuàng)建了一個(gè)浮點(diǎn)數(shù)對(duì)象并將其賦值給x。x是第一個(gè),因此,該對(duì)象的計(jì)數(shù)被設(shè)置為1。語(yǔ)句y=x創(chuàng)建了一個(gè)指向同一對(duì)象的別名y(參閱圖3-2)。事實(shí)上并沒(méi)有為Y創(chuàng)建一個(gè)新對(duì)象,而是該對(duì)象的計(jì)數(shù)增加了1次(變成了2)。這是對(duì)象計(jì)數(shù)增加的方式之一。還有一些其它的方式也能增加對(duì)象的計(jì)數(shù),比如該對(duì)象作為參x=y=或被作為參數(shù)傳遞給函數(shù)(新的本地myList=[123,x,下面讓我們來(lái)看一下計(jì)數(shù)是如何變少的。減少計(jì)數(shù)當(dāng)對(duì)象的被銷(xiāo)毀時(shí),計(jì)數(shù)會(huì)減小。最明顯的例子就是當(dāng)離開(kāi)其作用范圍時(shí),這種情況最經(jīng)常出現(xiàn)在函數(shù)運(yùn)行結(jié)束時(shí),所有局部變量都被自動(dòng)銷(xiāo)毀,對(duì)象的計(jì)數(shù)也就隨bar=foofoo=123當(dāng)字符串對(duì)象"xyz"被創(chuàng)建并賦值給foo時(shí),它的計(jì)數(shù)是1.當(dāng)增加了一個(gè)別名bar時(shí),計(jì)數(shù)變成了2.不過(guò)當(dāng)foo被重新賦值給整數(shù)對(duì)象123時(shí),xyz對(duì)象的計(jì)數(shù)自動(dòng)減1,又重新變成了1.一個(gè)對(duì)象的計(jì)數(shù)在以下情況會(huì)減少:一個(gè)本地離開(kāi)了其作用范圍。比如foobar()(參見(jiàn)上一下例子)函數(shù)結(jié)束時(shí)del #ordelx=del #orgoesout-of-deldelobj1[,obj2[,...引申一步,執(zhí)行delx會(huì)刪除該對(duì)象的最后一個(gè),也就是該對(duì)象的計(jì)數(shù)會(huì)減為0,這會(huì)導(dǎo)致該對(duì)象從此“無(wú)法”或“無(wú)法抵達(dá)”。從此刻起,該對(duì)象就成為回收機(jī)制的回收對(duì)象。注意任何追蹤或調(diào)試程序會(huì)給一個(gè)對(duì)象增加一個(gè)額外的,這會(huì)推遲該收的計(jì)數(shù),但收集器負(fù)責(zé)釋放內(nèi)存。收集器是一塊獨(dú)立代碼,它用來(lái)尋找計(jì)數(shù)為0的對(duì)象。它也負(fù)責(zé)檢查那些雖然計(jì)數(shù)大于0但也應(yīng)該被銷(xiāo)毀的對(duì)象。特定情形會(huì)導(dǎo)一個(gè)循環(huán)發(fā)生在當(dāng)你有至少兩個(gè)對(duì)象互相時(shí),也就是說(shuō)所有的都時(shí),這些仍然存在,這說(shuō)明只靠計(jì)數(shù)是不夠的。Python的收集器實(shí)際上是一個(gè)計(jì)數(shù)器和一個(gè)循環(huán)收集器。當(dāng)一個(gè)對(duì)象的計(jì)數(shù)變?yōu)?,解釋器會(huì)暫停,釋放掉這個(gè)對(duì)象和僅有這個(gè)對(duì)象可(可到達(dá))的其它對(duì)象。作為計(jì)數(shù)的補(bǔ)充,收集器也會(huì)留心被分配的總量很大(及未通過(guò)計(jì)數(shù)銷(xiāo)毀的那些)的對(duì)象。在這種情況下,解釋器會(huì)暫停下來(lái),試圖清理所有未的循環(huán)。第一個(gè)Python這個(gè)例子中還有你不熟悉(我們還未講到的)的Python結(jié)構(gòu),不過(guò)我們相信因?yàn)镻ython非常要介紹兩段處理文本文件的相關(guān)。首先,makeTextFile.py,創(chuàng)建一個(gè)文本文示該文本文件的內(nèi)容。研究一下這兩段代碼,看看他們是如何工作的。3.1創(chuàng)建文件后,將所有文本寫(xiě)入文本文件。1#!/usr/bin/env23'makeTextFile.py--createtextfile'5import8#get9while11if12print"ERROR:'%s'alreadyexists"%131417all=18print"\nEnterlines('.'byitselftoquit).\n"#loopuntiluserterminateswhileentry=raw_input('>ifentry==# inestofilewithproperline-fobj=open(fname, ines(['%s%s'%(x,ls)forxinprint第1–3的有點(diǎn)短,不過(guò)對(duì)這段代碼已經(jīng)夠用。(cgi第5–6面可以縮短變量名,另一方面也能改善該變量的性能。技巧:使用局部變量替換模塊變量類(lèi)似os.linesep這樣的名字需要解釋器做兩次查(1查找os以確認(rèn)它是一個(gè)模塊,(2在這個(gè)模塊中查找linesep變量。因?yàn)槟K也是全局變量,我們多消耗了系統(tǒng)資源。如果你在一個(gè)函數(shù)中類(lèi)似這樣頻繁使用一個(gè)屬性,我們建議你為該屬性取一個(gè)本地變量別名。變量查找速度將會(huì)快很多--在查找全局變量之前,總是先查找本地變量。這也是一個(gè)讓你的程序跑的更快的技巧:將經(jīng)常用到的模塊屬性替換為一個(gè)本地。代碼跑得更快,而也不用老是敲那么長(zhǎng)的變量名了。在我們的代碼片段中,并沒(méi)有定義函數(shù),所以不能給你定義本地別名的示例。不過(guò)我們有一個(gè)全局別名,至少也減少了一次名字查詢(xún)第8–1410-14raw_input()賦值。如果用戶(hù)不輸入了一個(gè)已經(jīng)存在的文件的名字,我們要提示這個(gè)用戶(hù)重新輸入另一個(gè)名字。os.path.exists()是os模塊中一個(gè)有用的函數(shù),幫助我們確認(rèn)這一點(diǎn)。當(dāng)有輸入一個(gè)不存在的文件名時(shí),os.path.exists()才會(huì)返回False,這時(shí)我們中斷循環(huán)繼續(xù)下面16–26列表all,它用來(lái)保存每一行文本。第21行開(kāi)始另一個(gè)無(wú)限循環(huán),提示用戶(hù)輸入每一行文本,一行僅輸入一個(gè)句點(diǎn)'.'表示輸入結(jié)束。23-26行的if-else語(yǔ)句判斷是否滿(mǎn)足結(jié)束條件以中止循環(huán)(行24),否則就再添加新的一行。28–32現(xiàn)在所有內(nèi)容都保存在內(nèi)存當(dāng)中,我們需要將它們保存到文件。第29行打開(kāi)文件準(zhǔn)備進(jìn)行寫(xiě)操作,第30行將內(nèi)存中的內(nèi)容逐行寫(xiě)入文件。每個(gè)文件都需要一個(gè)行結(jié)束符(或文件結(jié)束字添加一個(gè)合適的行結(jié)束符。'%s%s'為每一行添加行結(jié)束符,(x,ls)表示每一行及其行結(jié)束不必關(guān)心程序運(yùn)行在什么平臺(tái),也不必要根據(jù)不同的平臺(tái)決定使用哪種行結(jié)束符。文件對(duì)象的wriines()方法接收包含行結(jié)束符的結(jié)果列表,并將它寫(xiě)入文件readTextFile.pymakeTextFile.py是比它要大。你可能感的、有新意的一點(diǎn)在于異常處理的出現(xiàn)。1–35–7Example3.2FileReadandDisplay #!/usr/bin/env2 'readTextFile.py--readanddisplaytextfile'#getfname=raw_input('Enterfilename:8#attempttoopenfileforfobj=open(fname,exceptIOError,print"***fileopenerror:",#displaycontentstotheforeachLineinprint第9–18的剩余部分展示了一種新的Python結(jié)構(gòu),try-excepse語(yǔ)句。try子句是一段12-13open()IOError最后,14-18else子句try代碼塊運(yùn)行無(wú)誤時(shí)執(zhí)行。我們?cè)谶@兒將文件的每一行顯示在屏幕上。注意由于我們沒(méi)有移除代表每行結(jié)束的行結(jié)束符,我們不得不print語(yǔ)句自動(dòng)生成的行結(jié)束符--通過(guò)在print語(yǔ)句的最后加一個(gè)逗號(hào)可以達(dá)到這一目的。第18行關(guān)閉文件,從而結(jié)束這段。還是“不是”。(注意,這個(gè)函數(shù)內(nèi)可能已經(jīng)有異常處理代碼)個(gè)來(lái)干同樣一件事?異常處理最適用的場(chǎng)合,是在沒(méi)有合適的函數(shù)處理異常狀況的時(shí)候。這時(shí)程序員必須識(shí)別這些的錯(cuò)誤,并做出相應(yīng)處理。對(duì)我們的例子來(lái)說(shuō),我們能夠通過(guò)權(quán)限,網(wǎng)絡(luò)驅(qū)動(dòng)器突然連接失敗等等。從更安全的角度來(lái)說(shuō),就不應(yīng)該使用類(lèi)似 相關(guān)模塊和開(kāi)發(fā)工具“工具”。另外,還有一些模塊會(huì)幫助你成為一個(gè)優(yōu)秀的Python程序員。Debugger:Logger:Profilers:profile,hotshot,的日志系統(tǒng)。共有五級(jí)日志級(jí)別:緊急,錯(cuò)誤,警告,信息和調(diào)試。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版建筑項(xiàng)目招投標(biāo)與合同管控要點(diǎn)2篇
- 2024年甲乙雙方關(guān)于無(wú)人機(jī)研發(fā)、生產(chǎn)及銷(xiāo)售的合作協(xié)議
- 2024年美容店租賃合同模板
- 2025版預(yù)制構(gòu)件購(gòu)銷(xiāo)合同(海洋工程專(zhuān)用)3篇
- 2025年度安全監(jiān)控系統(tǒng)設(shè)計(jì)與安裝服務(wù)合同3篇
- 2024年非洲進(jìn)口物流代理協(xié)議
- 2025版青島港口物流貨物租賃合同2篇
- 2025年度貨車(chē)司機(jī)薪酬福利合同規(guī)范樣本3篇
- 2023年紅外線(xiàn)氣體分析儀項(xiàng)目融資計(jì)劃書(shū)
- 2025年度XX水務(wù)公司污水處理廠(chǎng)設(shè)備采購(gòu)與安裝合同2篇
- 教你炒紅爐火版00纏論大概
- 消防管道施工合同
- 大學(xué)生計(jì)算與信息化素養(yǎng)-北京林業(yè)大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 2023年國(guó)開(kāi)大學(xué)期末考復(fù)習(xí)題-3987《Web開(kāi)發(fā)基礎(chǔ)》
- 《駱駝祥子》1-24章每章練習(xí)題及答案
- 國(guó)際金融課后習(xí)題答案(吳志明第五版)第1-9章
- 《基于杜邦分析法周大福珠寶企業(yè)盈利能力分析報(bào)告(6400字)》
- 全國(guó)英語(yǔ)等級(jí)考試三級(jí)全真模擬試題二-2023修改整理
- 02R112 拱頂油罐圖集
- 英語(yǔ)課presentation中國(guó)麻將-Chinese-mahjong
- GB/T 8571-2008復(fù)混肥料實(shí)驗(yàn)室樣品制備
評(píng)論
0/150
提交評(píng)論