日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Python中的EAFP和LBYL代碼風(fēng)格到底是什么?

1. EAFP 風(fēng)格

Python 有一套自己的哲學(xué),其中 EAFP 是其中比較有名的。它的全稱(chēng)是:

Easier to Ask for Forgiveness than Permission

強(qiáng)行翻譯一下,就是 尋求原諒比獲得授權(quán)更容易。

對(duì)于第一次接觸這個(gè) EAFP 名詞的同學(xué),可能不好理解這句話(huà)的意思。

沒(méi)有關(guān)系,咱先看一下 EAFP 風(fēng)格的代碼是什么樣的,你就能立馬 get 了。

下面這段代碼,我在 try 里使用 [key] 的方法獲取字典一個(gè) value 值,但是由于 profile 并沒(méi)有 age 的鍵。所以會(huì)拋出異常。

 
 
 
 
  1. profile = {"name": "明哥"} 
  2. try: 
  3.     print(profile["age"]) 
  4. except KeyError: 
  5.     print("Key is not exist") 

像這種,先相信代碼本身沒(méi)有問(wèn)題,任其執(zhí)行,有問(wèn)題了再通過(guò)捕獲進(jìn)行處理的代碼風(fēng)格,就叫做 EAFP 風(fēng)格。

我個(gè)人把這種寫(xiě)法,稱(chēng)之為 面向崩潰編程。

2. LBYL 風(fēng)格

LBYL 的全稱(chēng)是:

Look Before You Leap

翻譯一下,就是 你跳之前先看看,這是一種比較保守的寫(xiě)法。這種寫(xiě)法可能會(huì)有讓你寫(xiě)很多的 if 判斷語(yǔ)句來(lái)規(guī)避可能出現(xiàn)錯(cuò)誤的各種場(chǎng)景。

還是以上面的代碼為例,使用 LBYL 風(fēng)格來(lái)寫(xiě)的話(huà),是這樣的

 
 
 
 
  1. profile = {"name": "明哥"} 
  2. if "age" in profile: 
  3.     print(profile["age"]) 
  4. else: 
  5.     print("Key is not exist") 

3. 選擇哪種風(fēng)格?

用一個(gè)生動(dòng)的例子來(lái)描述他們的區(qū)別。

有一對(duì)小伙伴一起約去某名山游玩,由于這座山比較險(xiǎn)峻,有各種各校的懸崖。

伙伴A,是一個(gè)比較大膽開(kāi)放的人,他自己穿上了降落傘,所以在游玩的時(shí)候,無(wú)所顧忌,都不看路,一旦不小心跌落懸崖了也有降落傘保命。 -- 這是 EAFP 風(fēng)格

而伙伴B,是一個(gè)比較保守的人,他沒(méi)有穿降落傘,所以每走一走都要看一看,前面是不是懸崖。-- 這是 LBLY 風(fēng)格

EAFP雖然是 Python 比較推薦的一種編碼風(fēng)格,但更多情況下,這兩種風(fēng)格會(huì)同時(shí)存在于你的代碼中代碼風(fēng)格的目的是增強(qiáng)代碼的可讀性和健壯性,在有些場(chǎng)景下 EAFP 風(fēng)格更加易讀,在有些場(chǎng)景下 LBLY 風(fēng)格更加易讀,因此不必糾結(jié)使用哪種風(fēng)格,具體情況應(yīng)該具體分析。

本文轉(zhuǎn)載自微信公眾號(hào)「Python編程時(shí)光」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python編程時(shí)光公眾號(hào)。


文章題目:Python中的EAFP和LBYL代碼風(fēng)格到底是什么?
URL地址:http://www.dlmjj.cn/article/coheoec.html