十條Python面試題陷阱,看看你是否會中招

2022-05-16 09:50:42 字數 1988 閱讀 1460

問題1:請問如何修改以下python**,使得下面的**呼叫類a的show方法?

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

問題2:請問如何修改以下python**,使得**能夠執行?

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

問題3:下面這段**的輸出是什麼?

答:

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

問題4:下面這段**輸出什麼?

答:

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

問題5:下面這段**輸出什麼?

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

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

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

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

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

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

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

答:問題10:請問下面的**有什麼隱患?

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

以上問題你們都會了嗎?最後提醒python面試記住:專案開發經驗永遠是核心,如果你缺新專案練習或者沒有python精講教程,可以去小編的python交流.裙 :七衣衣九七七巴而五(數字的諧音)轉換下可以找到了,裡面很多新教程專案,還可以跟老司機交流討教!

java面試題的陷阱

1.abstract class name 錯。abstract method必須以分號結尾,且不帶花括號。2.public class something 錯。區域性變數前不能放置任何訪問修飾符 private,public,和protected final可以用來修飾區域性變數 final如同a...

宣告提公升面試題 陷阱

先來 var fn1 ivan var name good var fn1 function y function fn1 x function fn2 x fn1 fn2 這裡是乙個特殊情況,也就是變數同名的時候,在這個地方函式表示式,變數,函式宣告都是一樣的名字。這裡的提公升順序是這樣的 函式宣...

面試專題 Python面試題陷阱,你是否會中招

無論是應聘python web開發,爬蟲工程師,或是資料分析,還是自動化運維,都涉及到一些基礎的知識!我挑了一些python的基礎面試題,看看你能不能的答上來,也許面試的同學用的著!問題1 請問如何修改以下python 使得下面的 呼叫類a的show方法?答 這道題的考點是類繼承,只要通過 clas...