Python使用強制縮進算不算一個敗筆
在CSDN看到一個關(guān)于Python之父Guido的采訪,主持人問到Python 這門語言采用強制代碼縮進,如果重來一次會不會放棄這個限制?
Guido是這樣回答的
代碼縮進(Indentation)其實并不是我發(fā)明的,當(dāng)時的同事給了我啟發(fā)。在 Python 中要求進行代碼縮進的原因是 30 年前的代碼編輯器都不能很好地對代碼進行縮進排版,所以我就想鼓勵程序員自己來對代碼進行正確的排版,從而確保程序員從視覺上對代碼的理解與編譯器對代碼的解析是一致的。這其實非常重要,幾年前蘋果公司就發(fā)生過一次非常嚴(yán)重的代碼安全漏洞事故,就是由于代碼中一個語句與程序員實際設(shè)想的 if-else 語法邏輯沒有匹配而引起的,其實,嚴(yán)格要求代碼縮進確實有點夸張,改用花括號,也不是不可以。
從Guido的回答來說,如果放在今天或者哪怕20年前,我估計他不會用強制縮進來規(guī)范代碼了。畢竟現(xiàn)在的代碼編輯器和30年前相比已經(jīng)發(fā)生了翻天覆地的變化,代碼自動格式化都是小兒科。
而對于是否應(yīng)該強制縮進,程序員持有兩種完全相反的觀點,一種覺得完全無法接受強制縮進,憑啥多敲一個空格就不行呢?為此還勸退不少人。喜歡的則認(rèn)為這是python的一大特點,代碼看起來整齊舒服。
我記得第一次接觸Python時,發(fā)現(xiàn)需要用強制縮進來分隔代碼塊,不對齊就報錯,為此驚訝不已。不過寫出來的代碼確實整齊劃一,反觀大括號,還在為到底要不要換行顯示爭論不止
if (a>b){
//
}
還是
if(a>b)
{
}
從另一方面來說,縮進也有糾結(jié)的地方,縮進到底是用tab縮進還是用空格縮進,縮進時用幾個空格,語法上并沒有做要求,PEP8建議每個縮進級別采用4個空格,通常IDE可配置成一個Tab等于4個空格

不過強制縮進一點也沒有影響它成為最流行的語言(之一)
對此你有什么看法
