Python常見問題

1.類的方法分別怎么調(diào)用鹅巍,項(xiàng)目中在哪里可以用到

類方法分為實(shí)例方法带膀、靜態(tài)方法和類方法步势,后兩者實(shí)際上沒有區(qū)別国撵,只不過類方法的第一個(gè)參數(shù)是代表類的對(duì)象瞪醋,而靜態(tài)方法沒有這個(gè)參數(shù)瓤的,實(shí)例方法要用對(duì)象調(diào)用(發(fā)給對(duì)象的消息)休弃,靜態(tài)方法和類方法用類就可以調(diào)用。

2.裝飾器和中間件的區(qū)別

裝飾器和中間件本質(zhì)也是一致的圈膏,Django1.8以后官方推薦的寫法中間件跟裝飾器的寫法是一致的塔猾,只不過中間件可以對(duì)web的請(qǐng)求和響應(yīng)進(jìn)行過濾,web的中間件更應(yīng)該稱為攔截過濾器

3.celery怎么寫

app = celery.Celery('模塊名'稽坤, broker = '消息服務(wù)器的URL'丈甸, backend = '存儲(chǔ)服務(wù)的URL')

4.七牛云怎么用的 CDN是干什么的

七牛云可以用來存儲(chǔ)靜態(tài)資源,CDN可以加速對(duì)靜態(tài)資源的訪問

5.數(shù)據(jù)庫索引

普通索引尿褪、主鍵索引睦擂、全文索引、唯一索引

6.中間件的種類

處理請(qǐng)求杖玲、處理響應(yīng)顿仇、處理異常、處理視圖摆马、處理模板

7.富文本編輯器是怎么做到圖片上傳的臼闻,又是怎么關(guān)聯(lián)到文章的(相當(dāng)于就是一篇文章 (字 圖片1 字 圖片2)怎么讓圖片和文章進(jìn)行關(guān)聯(lián))

富文本一般都帶了支持文件上傳的,只要給一個(gè)支持文件上傳的url地址就可以了囤采,圖片里面加一個(gè)文章的id作為外鍵就可以了圖片和文章就關(guān)聯(lián)起來了述呐,在存儲(chǔ)的時(shí)候就給圖片編一個(gè)號(hào)或者按照時(shí)間先后順序生成一個(gè)時(shí)間戳就可以區(qū)分順序了

8.緩存穿透和緩存雪崩怎么解決

緩存穿透:指查詢一個(gè)數(shù)據(jù)庫不存在的數(shù)據(jù)。
解決:
1.使用互斥鎖排隊(duì):
        業(yè)界比價(jià)普遍的一種做法蕉毯,即根據(jù)key獲取value值為空時(shí)乓搬,鎖上思犁,從數(shù)據(jù)庫中l(wèi)oad數(shù)據(jù)后再釋放鎖。若其它線程獲取鎖失敗进肯,則等待一段時(shí)間后重試抒倚。這里要注意,分布式環(huán)境中要使用分布式鎖坷澡,單機(jī)的話用普通的鎖(synchronized托呕、Lock)就夠了。這樣做思路比較清晰频敛,也從一定程度上減輕數(shù)據(jù)庫壓力项郊,但是鎖機(jī)制使得邏輯的復(fù)雜度增加,吞吐量也降低了斟赚,有點(diǎn)治標(biāo)不治本着降。
2.接口限流與熔斷、降級(jí):
        重要的接口一定要做好限流策略拗军,防止用戶惡意刷接口任洞,同時(shí)要降級(jí)準(zhǔn)備,當(dāng)接口中的某些服務(wù)不可用時(shí)候发侵,進(jìn)行熔斷交掏,失敗快速返回機(jī)制。
3.布隆過濾器:
        bloomfilter就類似于一個(gè)hash set刃鳄,用于快速判某個(gè)元素是否存在于集合中盅弛,其典型的應(yīng)用場(chǎng)景就是快速判斷一個(gè)key是否存在于某容器,不存在就直接返回叔锐。布隆過濾器的關(guān)鍵就在于hash算法和容器大小挪鹏。

緩存雪崩:緩存在同一時(shí)間內(nèi)大量鍵過期(失效),接著來的一大波請(qǐng)求瞬間都落在了數(shù)據(jù)庫中導(dǎo)致連接異常愉烙。嚴(yán)重可能導(dǎo)致數(shù)據(jù)庫宕機(jī)讨盒。
解決:
1.也可加鎖排隊(duì)機(jī)制。
2.建立備份緩存步责,緩存A和緩存B返顺,A設(shè)置超時(shí)時(shí)間,B不設(shè)置超時(shí)時(shí)間勺择,先從A讀緩存创南,A沒有讀B,省核,并且更新A緩存和B緩存稿辙。
3.設(shè)置緩存超時(shí)時(shí)間的時(shí)候加上一個(gè)隨機(jī)的時(shí)間長(zhǎng)度,比如這個(gè)緩存key的超時(shí)時(shí)間是固定的5分鐘加上隨機(jī)的2分鐘气忠,這樣可從一定程度上避免雪崩問題

注:redis是單線程+異步IO的工作模式

9.接口怎么做限流

接口限流是配置throttle_classes

10.數(shù)據(jù)庫事務(wù)

一個(gè)是事務(wù)的ACID特性邻储,一個(gè)是事務(wù)隔離級(jí)別赋咽,對(duì)應(yīng)到底層的鎖機(jī)制

事務(wù)的ACID特性:
1. 原子性(atomic),事務(wù)必須是原子工作單元吨娜;對(duì)于其數(shù)據(jù)修改脓匿,要么全都執(zhí)行,要么全都不執(zhí)行
2. 一致性(consistent)宦赠,事務(wù)的執(zhí)行結(jié)果陪毡,必須是從一個(gè)一致狀態(tài),變成另一個(gè)新的一致狀態(tài)勾扭。事務(wù)的原子性保證其一致性
3. 隔離性(insulation)毡琉,主要在并發(fā)時(shí),各個(gè)事務(wù)之間互不影響妙色。并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離桅滋。
4. 持久性(Duration),事務(wù)一旦提交身辨,數(shù)據(jù)就永久的保存在數(shù)據(jù)庫丐谋,它對(duì)于系統(tǒng)的影響是永久性的。

事務(wù)隔離級(jí)別:
1. Serializable 串行化
2. Repeatable Read 可重復(fù)讀
3. Read Commited 可讀已提交
4. Read Uncommited 可讀未提交
 
鎖的機(jī)制
1) 共享鎖
共享鎖的代號(hào)是S煌珊,共享鎖的鎖粒度是行或元組(多個(gè)行)号俐。一個(gè)事務(wù)獲取了共享鎖之后,可以對(duì)鎖定范圍內(nèi)的數(shù)據(jù)執(zhí)行讀操作怪瓶。 
2) 排它鎖
排它鎖的代號(hào)是X萧落,排它鎖的粒度與共享鎖相同践美,也是行或元組洗贰。一個(gè)事務(wù)獲取了排它鎖之后,可以對(duì)鎖定范圍內(nèi)的數(shù)據(jù)執(zhí)行寫操作陨倡。
3) 意向鎖
意向鎖是一種表鎖敛滋,鎖定的粒度是整張表,分為意向共享鎖(IS)和意向排它鎖(IX)兩類兴革。意向共享鎖表示一個(gè)事務(wù)有意對(duì)數(shù)據(jù)上共享鎖绎晃;意向排它鎖表示一個(gè)事務(wù)有意對(duì)數(shù)據(jù)上排它鎖。
使用意向鎖來保護(hù)鎖層次結(jié)構(gòu)的底層資源杂曲,以防止其他事務(wù)對(duì)自己鎖住的資源造成傷害庶艾。
意向鎖可以提高性能,因?yàn)閿?shù)據(jù)庫引擎僅在表級(jí)檢查意向鎖擎勘,確定事務(wù)是否能安全地獲取該表上的鎖咱揍,而不需要檢查表中的每行或每頁上的鎖以確定事務(wù)是否可以鎖定整個(gè)表。

MYSQL鎖級(jí)別
1) 表級(jí)鎖:直接鎖定整張表棚饵,在鎖定期間煤裙,其它進(jìn)程無法對(duì)該表進(jìn)行寫操作掩完,若是排他鎖,則其它進(jìn)程讀也不允許硼砰。開銷小且蓬,加鎖快,不會(huì)出現(xiàn)死鎖题翰,沖突概率高恶阴,并發(fā)度低。
2) 行級(jí)鎖:僅對(duì)指定的記錄進(jìn)行加鎖豹障,其它進(jìn)程還是可以對(duì)同一個(gè)表中的其它記錄進(jìn)行操作存淫。開銷大,加鎖慢沼填,會(huì)出現(xiàn)死鎖桅咆,沖突概率低,并發(fā)度高坞笙。
3) 頁級(jí)鎖:頁級(jí)鎖取了折衷岩饼,一次鎖定相鄰的一組記錄。開銷和加鎖時(shí)間界于表級(jí)鎖和行級(jí)鎖之間薛夜,會(huì)出現(xiàn)死鎖籍茧,并發(fā)度一般。

11.數(shù)據(jù)庫的優(yōu)化

1梯澜、選取最適用的字段屬性
2寞冯、使用連接(JOIN)來代替子查詢(Sub-Queries)
3、使用聯(lián)合(UNION)來代替手動(dòng)創(chuàng)建的臨時(shí)表
4晚伙、事務(wù)
5吮龄、鎖定表
6、使用外鍵
7咆疗、使用索引
8漓帚、優(yōu)化的查詢語句
9、定時(shí)的去清除不需要的數(shù)據(jù),定時(shí)進(jìn)行碎片整理(MyISAM)
10午磁、存儲(chǔ)過程 [模塊化編程尝抖,可以提高速度]
11、讀寫[寫: update/delete/add]分離
12迅皇、分表技術(shù)(水平分割昧辽、垂直分割)

12.高并發(fā)怎么處理

1.HTML靜態(tài)化
2.圖片服務(wù)器分離(七牛云云存儲(chǔ),CDN加速)
3.數(shù)據(jù)庫集群和庫表散列
4.緩存
5.鏡像
6.負(fù)載均衡

13.args和*kwargs分別代表什么

*args是非關(guān)鍵字參數(shù)登颓,傳入元組搅荞;**kwargs是關(guān)鍵字參數(shù)用于字典。

14.代碼審查(Review)

代碼評(píng)審可以分為代碼評(píng)審會(huì)議和Single Review(一對(duì)一審查),主要就是檢查代碼的風(fēng)格取具、邏輯這些脖隶,可以用工具進(jìn)行輔助檢查 或者是用工具(單元測(cè)試、pylint檢查代碼風(fēng)格)

15.Python的內(nèi)存管理機(jī)制

就是引用計(jì)數(shù)器機(jī)制和垃圾回收機(jī)制的混合機(jī)制

垃圾回收機(jī)制:
當(dāng)Python的某個(gè)對(duì)象的引用計(jì)數(shù)降為0時(shí)暇检,說明沒有任何引用指向該對(duì)象产阱,該對(duì)象就成為要被回收的垃圾。比如某個(gè)新建對(duì)象块仆,被分配給某個(gè)引用构蹬,對(duì)象的引用計(jì)數(shù)變?yōu)?。如果引用被刪除悔据,對(duì)象的引用計(jì)數(shù)為0庄敛,那么該對(duì)象就可以被垃圾回收。

16.Python2和Python3的區(qū)別

一科汗、 print 從語句變?yōu)楹瘮?shù)
   原:  print 1, 2+3
   改為: print(1, 2+3)
二藻烤、range 與 xrange
  原 : range( 0, 4 )   結(jié)果 是 列表 [0,1,2,3 ]
  改為:list( range(0,4) )
  原 : xrange( 0, 4 )    適用于 for 循環(huán)的變量控制
  改為:range(0,4)
三、字符串
  原: 字符串以 8-bit 字符串存儲(chǔ)
  改為: 字符串以 16-bit Unicode 字符串存儲(chǔ)
四头滔、try except 語句的變化
   原: 
       try:
              ......
       except Exception, e :
              ......
   改為:
       try:
          ......
       except    Exception as e :
         ......
五怖亭、打開文件
   原: 
       file( ..... )或 open(.....)
   改為:
       open(.....)
六、從鍵盤錄入一個(gè)字符串
   原: raw_input( "提示信息" )
   改為: input( "提示信息" )
七坤检、bytes 數(shù)據(jù)類型
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末兴猩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子早歇,更是在濱河造成了極大的恐慌倾芝,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箭跳,死亡現(xiàn)場(chǎng)離奇詭異晨另,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)衅码,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門拯刁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逝段,你說我怎么就攤上這事「钔保” “怎么了奶躯?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)亿驾。 經(jīng)常有香客問我嘹黔,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任儡蔓,我火速辦了婚禮郭蕉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喂江。我一直安慰自己召锈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布获询。 她就那樣靜靜地躺著涨岁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吉嚣。 梳的紋絲不亂的頭發(fā)上梢薪,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音尝哆,去河邊找鬼秉撇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛秋泄,可吹牛的內(nèi)容都是我干的畜疾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼印衔,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼啡捶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奸焙,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤瞎暑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后与帆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體了赌,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年玄糟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勿她。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阵翎,死狀恐怖逢并,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情郭卫,我是刑警寧澤砍聊,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站贰军,受9級(jí)特大地震影響玻蝌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一俯树、第九天 我趴在偏房一處隱蔽的房頂上張望帘腹。 院中可真熱鬧,春花似錦许饿、人聲如沸阳欲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胸完。三九已至,卻和暖如春翘贮,著一層夾襖步出監(jiān)牢的瞬間赊窥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工狸页, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锨能,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓芍耘,卻偏偏與公主長(zhǎng)得像址遇,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子斋竞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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