昨天說今天更新,原本今天不想更新的,但是小編是個不願「聽話」的人,當我的身體發出今天休息指令時,我違背了這項指令,於是就會出現bug,可這種bug出現本身就是一種錯誤。
今天是入秋來第一天,來杯奶茶
別人有的你也要有
不客氣
等大家喝完奶茶再跟大家分享一些曾經遇到過的測試面試題,希望給大家帶來幫助。
1、python中的裝飾器?裝飾器的作用?
裝飾器是修飾其他函數的功能的函數,他們有助於讓我們的程式碼更簡短。
裝飾器本質上是一個 Python函數或類,它可以讓其他函數或類在不需要做任何程式碼修改的前提下增加額外功能,裝飾器的返回值也是一個函數/類物件。
它經常用於有切面需求的場景,比如:插入紀錄檔、效能測試、事務處理、快取、許可權校驗
等場景,裝飾器是解決這類問題的絕佳設計。有了裝飾器,我們就可以抽離出大量與函數功能本身無關的雷同程式碼到裝飾器中並繼續重用。
概括的講,裝飾器的作用就是為已經存在的物件新增額外的功能。
2、python是否支援多重繼承?
在Python中是支援多重繼承的,也就是我們可以為一個類同時指定多個父類別。可以在類名的()後邊新增多個類,來實現多重繼承。
多重繼承,會使子類同時擁有多個父類別,並且會獲取到所有父類別中的方法。
在沒有特殊的情況,應該儘量避免使用多重繼承,因為多重繼承會讓我們的程式碼過於複雜。如果多個父類別中有同名的方法,則會先在第一個父類別中尋找,然後找第二個,
最後找第三個。前邊父類別的方法會覆蓋後邊父類別的方法
3、pytest框架中如何實現app自動化測試只啟動一次app?
@pytest.fixture裝飾器定義一個函數,可以在pytest框架中被呼叫,其中預設scope的作用域是function,其它還有:session、module 、class;
如果想整個框架的測試用例執行只啟動一次app就採用session級別的,如果是指定那些模組的測試用例執行則使用module、單個測試類就是class、function預設是測試用例方法級別
4、Python 中的字串格式化的方法有哪些?f-string 格式化知道嗎?
1.%格式符
2.str.format()
3.f-Strings
f-string是2015年python 3.6 根據PEP 498新新增的一種字串格式化方法,f-string實際上是在執行時計算的表示式,而不是常數值。在Python原始碼中,f-string是一個文字字串,字首為’f’,其中包含大括號內的表示式。表示式會將大括號中的內容替換為其值。
5、編寫函數的四個原則是什麼?
一:函數設計要儘量短小,巢狀層次不宜過深。
二:引數個數不宜太多。
三:函數引數設計應該考慮向下相容
四:一個函數只做一件事,儘量保證函數語句粒度的一致性
6、Python 中如何避免記憶體漏失?
有 del() 函數的物件間的迴圈參照是導致記憶體漏失的主凶。不使用一個物件時使用:delobject 來刪除一個物件的參照計數就可以有效防止記憶體漏失問題。通過Python 擴充套件模組 gc 來檢視不能回收的物件的詳細資訊。可以通過 sys.getrefcount(obj) 來獲取物件的參照計數,並根據返回值是否為 0 來判斷是否記憶體漏失。
7、如何在python中實現多執行緒和多程序?
一個執行緒就是一個輕量級程序,多執行緒能讓我們一次執行多個執行緒。python是多執行緒語言,其內建有多執行緒工具包。python中GIL(全域性直譯器鎖)確保一次執行單個執行緒。
當程式中需要處理幾百上千個程序時,僅僅用Process是不現實的,因為手動去規劃程序過於繁瑣,所以此時你需要另外的工具去管理這些程序。multiprocessing提供了一個Pool的工具。
Pool可以提供指定數量的程序供使用者進行呼叫,當新的請求發到程序池時,如果此時程序池還沒有滿,那麼Pool會自動建立一個程序去處理這個請求,否則,這個請求需要等待,直到程序池有新的空間釋放。另外Pool與Process不同的地方是前者可以有返回值,而Process需要藉助其他物件對資料進行儲存。
8、列表資料如何篩選,篩選出符合要求的資料?
1、通用方式:通過迭代方式,從第一個開始判斷,符合條件留下,不符合的丟棄。
2、filter方式:filter(function or None, iterable)–> filter object,該函數用於過濾序列,過濾掉不符合條件的元素,返回一個迭代器物件,需要用list轉換回列表。
3、列表解析。
記住,別人有的你也要有!!!