一些python面試題總結(jié)

一)朴肺、這兩個(gè)參數(shù)是什么意思:*args,**kwargs坚洽?我們?yōu)槭裁匆褂盟鼈儯?br>

答:如果我們不確定往一個(gè)函數(shù)中傳入多少參數(shù)戈稿,或者我們希望以元組(tuple)或者列表(list)的形式傳參數(shù)的時(shí)候,我們可以使用*args(單星號(hào))酪术。如果我們不知道往函數(shù)中傳遞多少個(gè)關(guān)鍵詞參數(shù)或者想傳入字典的值作為關(guān)鍵詞參數(shù)的時(shí)候我們可以使用**kwargs(雙星號(hào))器瘪,args、kwargs兩個(gè)標(biāo)識(shí)符是約定俗成的用法绘雁。

另一種答法:當(dāng)函數(shù)的參數(shù)前面有一個(gè)星號(hào)*號(hào)的時(shí)候表示這是一個(gè)可變的位置參數(shù)橡疼,兩個(gè)星號(hào)**表示這個(gè)是一個(gè)可變的關(guān)鍵詞參數(shù)。星號(hào)*把序列或者集合解包(unpack)成位置參數(shù)庐舟,兩個(gè)星號(hào)**把字典解包成關(guān)鍵詞參數(shù)欣除。

代碼理解一下

圖片發(fā)自簡(jiǎn)書(shū)App

二)、談一談Python的裝飾器(decorator)

裝飾器本質(zhì)上是一個(gè)Python函數(shù)挪略,它可以讓其它函數(shù)在不作任何變動(dòng)的情況下增加額外功能历帚,裝飾器的返回值也是一個(gè)函數(shù)對(duì)象。它經(jīng)常用于有切面需求的場(chǎng)景杠娱。比如:插入日志挽牢、性能測(cè)試、事務(wù)處理摊求、緩存禽拔、權(quán)限校驗(yàn)等。有了裝飾器我們就可以抽離出大量的與函數(shù)功能無(wú)關(guān)的雷同代碼進(jìn)行重用室叉。

圖片發(fā)自簡(jiǎn)書(shū)App

三)睹栖、簡(jiǎn)要描述Python的垃圾回收機(jī)制(garbage collection)

Python中的垃圾回收是以引用計(jì)數(shù)為主,標(biāo)記-清除和分代收集為輔茧痕。

引用計(jì)數(shù):Python在內(nèi)存中存儲(chǔ)每個(gè)對(duì)象的引用計(jì)數(shù)野来,如果計(jì)數(shù)變成0,該對(duì)象就會(huì)消失踪旷,分配給該對(duì)象的內(nèi)存就會(huì)釋放出來(lái)曼氛。

標(biāo)記-清除:一些容器對(duì)象豁辉,比如list、dict搪锣、tuple秋忙,instance等可能會(huì)出現(xiàn)引用循環(huán)彩掐,對(duì)于這些循環(huán)构舟,垃圾回收器會(huì)定時(shí)回收這些循環(huán)(對(duì)象之間通過(guò)引用(指針)連在一起,構(gòu)成一個(gè)有向圖堵幽,對(duì)象構(gòu)成這個(gè)有向圖的節(jié)點(diǎn)狗超,而引用關(guān)系構(gòu)成這個(gè)有向圖的邊)。

分代收集:Python把內(nèi)存根據(jù)對(duì)象存活時(shí)間劃分為三代朴下,對(duì)象創(chuàng)建之后努咐,垃圾回收器會(huì)分配它們所屬的代。每個(gè)對(duì)象都會(huì)被分配一個(gè)代殴胧,而被分配更年輕的代是被優(yōu)先處理的渗稍,因此越晚創(chuàng)建的對(duì)象越容易被回收。

四)团滥、Python多線程(multi-threading)竿屹。這是個(gè)好主意嗎?

Python并不支持真正意義上的多線程灸姊,Python提供了多線程包拱燃。Python中有一個(gè)叫Global Interpreter Lock(GIL)的東西,它能確保你的代碼中永遠(yuǎn)只有一個(gè)線程在執(zhí)行力惯。經(jīng)過(guò)GIL的處理碗誉,會(huì)增加執(zhí)行的開(kāi)銷。這就意味著如果你先要提高代碼執(zhí)行效率父晶,使用threading不是一個(gè)明智的選擇哮缺,當(dāng)然如果你的代碼是IO密集型,多線程可以明顯提高效率甲喝,相反如果你的代碼是CPU密集型的這種情況下多線程大部分是雞肋尝苇。

五)、 說(shuō)明os,sys模塊不同俺猿,并列舉常用的模塊方法茎匠?

官方文檔: os模板提供了一種方便的使用操作系統(tǒng)函數(shù)的方法

sys模板可供訪問(wèn)由解釋器使用或維護(hù)的變量和與解釋器交互的函數(shù)

另一種回答:os模塊負(fù)責(zé)程序與操作系統(tǒng)的交互,提供了訪問(wèn)操作系統(tǒng)底層的接口押袍。sys模塊負(fù)責(zé)程序與Python解釋器的交互诵冒,提供了一系列的函數(shù)和變量用戶操作Python運(yùn)行時(shí)的環(huán)境。

六)谊惭、什么是lambda表達(dá)式汽馋?它有什么好處侮东?

簡(jiǎn)單來(lái)說(shuō),lambda表達(dá)式通常是當(dāng)你需要使用一個(gè)函數(shù)豹芯,但是又不想費(fèi)腦袋去命名一個(gè)函數(shù)的時(shí)候使用悄雅,也就是通常所說(shuō)的匿名函數(shù)。lambda表達(dá)式一般的形式是:關(guān)鍵詞lambda后面緊接一個(gè)或多個(gè)參數(shù)铁蹈,緊接一個(gè)冒號(hào)“:”宽闲,緊接一個(gè)表達(dá)式。lambda表達(dá)式是一個(gè)表達(dá)式不是一個(gè)語(yǔ)句握牧。

圖片發(fā)自簡(jiǎn)書(shū)App

七)容诬、Python中pass語(yǔ)句的作用是什么?

pass語(yǔ)句不會(huì)執(zhí)行任何操作沿腰,一般作為占位符或者創(chuàng)建占位程序

(八)览徒、Python是如何進(jìn)行類型轉(zhuǎn)換的?

Python提供了將變量或值從一種類型轉(zhuǎn)換為另一種類型的內(nèi)置方法颂龙。

圖片發(fā)自簡(jiǎn)書(shū)App

九)习蓬、Python里面如何拷貝一個(gè)對(duì)象?

Python中對(duì)象之間的賦值是按引用傳遞的措嵌,如果要拷貝對(duì)象需要使用標(biāo)準(zhǔn)模板中的copy

copy.copy:淺拷貝躲叼,只拷貝父對(duì)象,不拷貝父對(duì)象的子對(duì)象铅匹。

copy.deepcopy:深拷貝押赊,拷貝父對(duì)象和子對(duì)象。

十)包斑、__new__和__init__的區(qū)別流礁。

__init__為初始化方法,__new__方法是真正的構(gòu)造函數(shù)罗丰。

__new__是實(shí)例創(chuàng)建之前被調(diào)用神帅,它的任務(wù)是創(chuàng)建并返回該實(shí)例,是靜態(tài)方法

__init__是實(shí)例創(chuàng)建之后被調(diào)用的萌抵,然后設(shè)置對(duì)象屬性的一些初始值找御。

總結(jié):__new__方法在__init__方法之前被調(diào)用,并且__new__方法的返回值將傳遞給__init__方法作為第一個(gè)參數(shù)绍填,最后__init__給這個(gè)實(shí)例設(shè)置一些參數(shù)霎桅。

圖片發(fā)自簡(jiǎn)書(shū)App

十一)、Python中單下劃線和雙下劃線分別是什么讨永?

__name__:一種約定滔驶,Python內(nèi)部的名字,用來(lái)與用戶自定義的名字區(qū)分開(kāi)卿闹,防止沖突

_name:一種約定揭糕,用來(lái)指定變量私有

__name:解釋器用_classname__name來(lái)代替這個(gè)名字用以區(qū)別和其他類相同的命名

十二)萝快、說(shuō)一說(shuō)Python自省。

自省就是面向?qū)ο蟮恼Z(yǔ)言所寫(xiě)的程序在運(yùn)行時(shí)著角,所能知道對(duì)象的類型揪漩。簡(jiǎn)單一句話就是運(yùn)行時(shí)能夠獲得對(duì)象的類型。比如:type()吏口、dir()奄容、getattr()、hasattr()锨侯、isinstance()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嫩海,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子囚痴,更是在濱河造成了極大的恐慌,老刑警劉巖审葬,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件深滚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡涣觉,警方通過(guò)查閱死者的電腦和手機(jī)痴荐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)官册,“玉大人生兆,你說(shuō)我怎么就攤上這事∠ツ” “怎么了鸦难?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)员淫。 經(jīng)常有香客問(wèn)我合蔽,道長(zhǎng),這世上最難降的妖魔是什么介返? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任拴事,我火速辦了婚禮,結(jié)果婚禮上圣蝎,老公的妹妹穿的比我還像新娘刃宵。我一直安慰自己,他們只是感情好徘公,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布牲证。 她就那樣靜靜地躺著,像睡著了一般步淹。 火紅的嫁衣襯著肌膚如雪从隆。 梳的紋絲不亂的頭發(fā)上诚撵,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音键闺,去河邊找鬼寿烟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛辛燥,可吹牛的內(nèi)容都是我干的筛武。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼挎塌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼徘六!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起榴都,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤待锈,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后嘴高,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體竿音,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年拴驮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了春瞬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡套啤,死狀恐怖宽气,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情潜沦,我是刑警寧澤萄涯,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站止潮,受9級(jí)特大地震影響窃判,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喇闸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一袄琳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧燃乍,春花似錦唆樊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春片效,著一層夾襖步出監(jiān)牢的瞬間红伦,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工淀衣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昙读,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓膨桥,卻偏偏與公主長(zhǎng)得像蛮浑,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子只嚣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容