真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python2和Python3的區(qū)別有哪些

本篇內(nèi)容主要講解“Python2和Python3的區(qū)別有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python2和Python3的區(qū)別有哪些”吧!

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出紅山免費(fèi)做網(wǎng)站回饋大家。

什么是鴨子類型(duck typing)?

鴨子類型是動(dòng)態(tài)類型語言判斷一個(gè)對(duì)象是不是某種類型時(shí)使用的方法,也叫做鴨子判定法。簡(jiǎn)單的說,鴨子類型是指判斷一只鳥是不是鴨子,我們只關(guān)心它游泳像不像鴨子、叫起來像不像鴨子、走路像不像鴨子就足夠了。換言之,如果對(duì)象的行為跟我們的預(yù)期是一致的(能夠接受某些消息),我們就認(rèn)定它是某種類型的對(duì)象。

在Python語言中,有很多bytes-like對(duì)象(如:bytes、bytearray、array.array、memoryview)、file-like對(duì)象(如:StringIO、BytesIO、GzipFile、socket)、path-like對(duì)象(如:str、bytes),其中file-like對(duì)象都能支持read和write操作,可以像文件一樣讀寫,這就是所謂的對(duì)象有鴨子的行為就可以判定為鴨子的判定方法。再比如Python中列表的extend方法,它需要的參數(shù)并不一定要是列表,只要是可迭代對(duì)象就沒有問題。

說明:動(dòng)態(tài)語言的鴨子類型使得設(shè)計(jì)模式的應(yīng)用被大大簡(jiǎn)化。

說一下Python中變量的作用域。

Python中有四種作用域,分別是局部作用域(Local)、嵌套作用域(Embedded)、全局作用域(Global)、內(nèi)置作用域(Built-in),搜索一個(gè)標(biāo)識(shí)符時(shí),會(huì)按照LEGB的順序進(jìn)行搜索,如果所有的作用域中都沒有找到這個(gè)標(biāo)識(shí)符,就會(huì)引發(fā)NameError異常。

題目28:說一下你對(duì)閉包的理解。

閉包是支持一等函數(shù)的編程語言(Python、JavaScript等)中實(shí)現(xiàn)詞法綁定的一種技術(shù)。當(dāng)捕捉閉包的時(shí)候,它的自由變量(在函數(shù)外部定義但在函數(shù)內(nèi)部使用的變量)會(huì)在捕捉時(shí)被確定,這樣即便脫離了捕捉時(shí)的上下文,它也能照常運(yùn)行。簡(jiǎn)單的說,可以將閉包理解為能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。正在情況下,函數(shù)的局部變量在函數(shù)調(diào)用結(jié)束之后就結(jié)束了生命周期,但是閉包使得局部變量的生命周期得到了延展。使用閉包的時(shí)候需要注意,閉包會(huì)使得函數(shù)中創(chuàng)建的對(duì)象不會(huì)被垃圾回收,可能會(huì)導(dǎo)致很大的內(nèi)存開銷,所以閉包一定不能濫用。

題目29:說一下Python中的多線程和多進(jìn)程的應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)。

線程是操作系統(tǒng)分配CPU的基本單位,進(jìn)程是操作系統(tǒng)分配內(nèi)存的基本單位。通常我們運(yùn)行的程序會(huì)包含一個(gè)或多個(gè)進(jìn)程,而每個(gè)進(jìn)程中又包含一個(gè)或多個(gè)線程。多線程的優(yōu)點(diǎn)在于多個(gè)線程可以共享進(jìn)程的內(nèi)存空間,所以進(jìn)程間的通信非常容易實(shí)現(xiàn);但是如果使用官方的CPython解釋器,多線程受制于GIL(全局解釋器鎖),并不能利用CPU的多核特性,這是一個(gè)很大的問題。使用多進(jìn)程可以充分利用CPU的多核特性,但是進(jìn)程間通信相對(duì)比較麻煩,需要使用IPC機(jī)制(管道、套接字等)。

多線程適合那些會(huì)花費(fèi)大量時(shí)間在I/O操作上,但沒有太多并行計(jì)算需求且不需占用太多內(nèi)存的I/O密集型應(yīng)用。多進(jìn)程適合執(zhí)行計(jì)算密集型任務(wù)(如:視頻編碼解碼、數(shù)據(jù)處理、科學(xué)計(jì)算等)、可以分解為多個(gè)并行子任務(wù)并能合并子任務(wù)執(zhí)行結(jié)果的任務(wù)以及在內(nèi)存使用方面沒有任何限制且不強(qiáng)依賴于I/O操作的任務(wù)。

擴(kuò)展:Python中實(shí)現(xiàn)并發(fā)編程通常有多線程、多進(jìn)程和異步編程三種選擇。異步編程實(shí)現(xiàn)了協(xié)作式并發(fā),通過多個(gè)相互協(xié)作的子程序的用戶態(tài)切換,實(shí)現(xiàn)對(duì)CPU的高效利用,這種方式也是非常適合I/O密集型應(yīng)用的。

說一下Python 2和Python 3的區(qū)別。

點(diǎn)評(píng):這種問題千萬不要背所謂的參考答案,說一些自己最熟悉的就足夠了。

  1. Python 2中的print和exec都是關(guān)鍵字,在Python 3中變成了函數(shù)。

  2. Python 3中沒有l(wèi)ong類型,整數(shù)都是int類型。

  3. Python 2中的不等號(hào)<>在Python 3中被廢棄,統(tǒng)一使用!=。

  4. Python 2中的xrange函數(shù)在Python 3中被range函數(shù)取代。

  5. Python 3對(duì)Python 2中不安全的input函數(shù)做出了改進(jìn),廢棄了raw_input函數(shù)。

  6. Python 2中的file函數(shù)被Python 3中的open函數(shù)取代。

  7. Python 2中的/運(yùn)算對(duì)于int類型是整除,在Python 3中要用//來做整除除法。

  8. Python 3中改進(jìn)了Python 2捕獲異常的代碼,很明顯Python 3的寫法更合理。

  9. Python 3生成式中循環(huán)變量的作用域得到了更好的控制,不會(huì)影響到生成式之外的同名變量。

  10. Python 3中的round函數(shù)可以返回int或float類型,Python 2中的round函數(shù)返回float類型。

  11. Python 3的str類型是Unicode字符串,Python 2的str類型是字節(jié)串,相當(dāng)于Python 3中的bytes。

  12. Python 3中的比較運(yùn)算符必須比較同類對(duì)象。

  13. Python 3中定義類的都是新式類,Python 2中定義的類有新式類(顯式繼承自object的類)和舊式類(經(jīng)典類)之分,新式類和舊式類在MRO問題上有非常顯著的區(qū)別,新式類可以使用__class__屬性獲取自身類型,新式類可以使用__slots__魔法。

  14. Python 3對(duì)代碼縮進(jìn)的要求更加嚴(yán)格,如果混用空格和制表鍵會(huì)引發(fā)TabError。

  15. Python 3中字典的keys、values、items方法都不再返回list對(duì)象,而是返回view object,內(nèi)置的map、filter等函數(shù)也不再返回list對(duì)象,而是返回迭代器對(duì)象。

  16. Python 3標(biāo)準(zhǔn)庫(kù)中某些模塊的名字跟Python 2是有區(qū)別的;而在三方庫(kù)方面,有些三方庫(kù)只支持Python 2,有些只能支持Python 3。

到此,相信大家對(duì)“Python2和Python3的區(qū)別有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


分享標(biāo)題:Python2和Python3的區(qū)別有哪些
本文路徑:http://weahome.cn/article/ppsheg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部