百度大牛總結十條Python面試題陷阱,看看你是否會中招

實驗樓v發表於2018-05-04

關注「實驗樓」,每天分享一個專案教程   

每年的3-4月份是跳槽的高峰期,無論是應聘Python web開發,爬蟲工程師,或是資料分析,還是自動化運維,都涉及到一些基礎的知識!我挑了一些Python的基礎面試題,看看你能不能的答上來,也許面試的同學用的著!

正文共:1323 字 

預計閱讀時間:4 分鐘

問題1:請問如何修改以下Python程式碼,使得下面的程式碼呼叫類A的show方法?

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

答:這道題的考點是類繼承,只要通過__class__ 方法指定類物件就可以了。補充的程式碼如下:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

問題2:請問如何修改以下Python程式碼,使得程式碼能夠執行?

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

答:此題考察得是方法物件,為了能讓物件例項能被直接呼叫,需要實現 __call__ 方法,補充程式碼如下:

640?wx_fmt=jpeg

問題3:下面這段程式碼的輸出是什麼?

640?wx_fmt=jpeg

答:

640?wx_fmt=jpeg

此題考察的是new和init的用法,使用 __new__ 方法,可以決定返回那個物件,也就是建立物件之前呼叫的,這個常見於於設計模式的單例、工廠模式。__init__ 是建立物件是呼叫的。

問題4:下面這段程式碼輸出什麼?

640?wx_fmt=jpeg

答:

640?wx_fmt=jpeg

此題考察的是列表和字典的生成。

問題5:下面這段程式碼輸出什麼?

640?wx_fmt=jpeg

答:

640?wx_fmt=jpeg

此題考察全域性變數和區域性變數。num 不是個全域性變數,所以每個函式都得到了自己的 num 拷貝,如果你想修改 num ,則必須用 global 關鍵字宣告。比如下面這樣

640?wx_fmt=jpeg

問題6:如何使用一行程式碼交換兩個變數值?

640?wx_fmt=jpeg

答:

640?wx_fmt=jpeg

問題7:如何新增程式碼,使得沒有定義的方法都呼叫mydefault方法?

640?wx_fmt=jpeg

答:

640?wx_fmt=jpeg

此題的考的是Python的預設方法, 只有當沒有定義的方法呼叫時,才會呼叫方法 __getattr__。當 fn1 方法傳入引數時,我們可以給 mydefault 方法增加一個 *args 不定引數來相容。

640?wx_fmt=jpeg

問題8:一個包裡有三個模組,mod1.py , mod2.py , mod3.py ,但使用 from demopack import * 匯入模組時,如何保證只有 mod1 、 mod3 被匯入了。

答:在包中增加 __init__.py 檔案,並在檔案中增加:

640?wx_fmt=jpeg

問題9:寫一個函式,接收整數引數 n ,返回一個函式,函式返回n和引數的積。

答:

640?wx_fmt=jpeg

問題10:請問下面的程式碼有什麼隱患?(Python2中)

640?wx_fmt=jpeg

答:由於變數str是個不可變物件,每次迭代,python都會生成新的str物件來儲存新的字串,num越大,建立的str物件越多,記憶體消耗越大。


640?


出處:今日頭條

原文連結:https://www.toutiao.com/i6550223737344492039/


學習更多


樓+「 Python實戰 」、「 Linux運維與Devops實戰 」、「 機器學習實戰 」優惠報名中——來自騰訊、Intel、IBM等網際網路大廠的一線大牛親自指導,培養有真正工作能力的工程師!

點選下面的連結瞭解詳情:

三個月死磕Python是種什麼樣的體驗?

11周打通 Linux 任督二脈,實驗樓技術天團帶你飛!

從0到1,如何在6周內成為機器學習工程師


相關文章