python後端面試題

2021-09-27 06:47:23 字數 1268 閱讀 2753

1.說說python高併發解決方案?

答案:

1.使用多程序,避免使用python多執行緒。

2.使用協程、併發框架(需要提到gevent、tornado(只適用於web))。

3.使用其他語言,如c語言,來編寫多執行緒併發的程式,使用python的膠水特性。

2.談談python的迭代器、生成器、裝飾器

答案:

可迭代物件:

簡單的理解就是可以使用for遍歷的物件,實現了迭代器協議,可以使用iterable()來檢視是否可以迭代

迭代器:

通常物件內部實現了iter()、next()方法,就是迭代器

生成器:

只是儲存一種迭代方法,呼叫時才生成資料,極大的減小了記憶體的占用,還有一種是生成器函式,內部使用了yield關鍵字,來支援迭代器協議

裝飾器:

@符號表示裝飾器

實現:

在閉包的基礎上,把乙個函式的引用當做引數傳遞給乙個閉包,在閉包內部執行了這個函式,和閉包本身的**功能,實現了在不改變函式**增加新功能,只能在這個函式執行之前,和執行之後增加功能

多個裝飾器裝飾同乙個函式:

順序為從下往上裝飾

帶引數的裝飾器:

實際上是在閉包的外層再加乙個閉包,拿外層閉包的返回值當做裝飾器

**上用於

登入認證,或者許可權驗證,還常用於log日誌

執行緒安全

答案:

執行緒安全就是多執行緒執行時避免產生衝突。

如多個執行緒同時操作乙個變數,資源競爭問題,使用鎖機制,可以解決競爭問題,但是可能會產生死鎖,造成程式停止響應,兩個執行緒擁有部分資源互相等待對方釋放這一部分資源

queue佇列也實現了鎖機制,先進先出,可以避免競爭問題

解決辦法增加判讀時間、避免死鎖的產生

sql注入:

給sql語句注入其他內容

防止:

1.避免sql語句暴露

2.接收的資料進行轉換

未完待續

python後端麵試題答案 僅參考

數學 資料庫問答題 共4題,合計24分 1.答 不包含6或8或9的總數 1位數 0 9 10 3 7個 2位數 10 99 90 6 7 48個 3位數 100 999 900 6 7 7 606 4位數 1000 9999 9000 6 7 7 7 6942 包含6或8或9的數字總數為 10000...

python面試題 web後端

socket 簡稱 套接字 是程序間通訊乙個工具,它能實現把資料從一方傳輸到另外一方,完成不同電腦上程序之間的通訊,它好比資料的搬運工。udp是乙個簡單的面向資料報的運輸層協議.缺點 使用場景 傳送廣播訊息 tcp 英文全拼 transmission control protocol 簡稱傳輸控制協...

前端面試題

sprites是什麼和為什麼要使用他們?css 精靈 把一堆小的整合到一張大的上,減輕伺服器對的請求數量 有可能替代sprites的方法是什麼?svg圖示,字型圖示,字元編碼等等。1 在div排版的時候,假設現在是100px的寬,我在盒子左側用padding left留個10px的白,div就撐開了...