2013-09-23 39 views
1

我讀過一些python教程,最好是使用空格而不是製表符。爲什麼建議我用空格替換標籤?

+2

相關編輯器之間的代碼: http://stackoverflow.com/questions/119562/tabs-versus-spaces-in-python-programming – geoffspear

+0

http://www.python.org/dev/peps/pep-0008/#tabs-or-spaces – karthikr

+1

爲什麼這個問題是否以「基於意見爲基礎」而不是重複?從暫停的解釋 - *「......這個問題的答案几乎完全基於意見,而不是事實,參考或具體的專業知識。」*實際上,正確的答案**是基於具體的事實和參考資料 - PEP8。也許我多想想這些事情,因爲我最近得到了近距離投票權,但不要那麼快選擇其他人正在選擇的關閉原因,因爲其他人都在挑選它。 – MattDMo

回答

6

因爲這是社區標準。

Guido Van Rossum其實preferr{s,ed} tabs,但整個社區喜歡空間。如果你想分享代碼,標準特別有用。

就是這樣。空格和製表符都有優點,但堅持標準往往會超過兩者。

的空間一些優點:

  • 空間往往較少受到嚴重設計的軟件錯位
  • 的方式有些對齊的代碼,當您使用標籤
  • 縮進是如果有更多的一致,即不再起作用您將有不同的製表位

+0

我見過有人說他喜歡在很多地方使用標籤,但沒有任何鏈接到任何來源... – kyrias

+0

@kyrias雖然我沒有保留來源和內存可能有問題,我會說這是第一手的帳戶。據我所知,我確實讀過Guido在檔案中的某處說這個。對不起,我沒有一個實際的來源。 – Veedrac

+0

@kyrias FWIW,Python 1.5源代碼中有四倍空間縮進量的選項卡的兩倍。 – Veedrac

4

它是PEP 008風格指南的一部分。

http://legacy.python.org/dev/peps/pep-0008/#tabs-or-spaces

我必使直接引用的回答你的問題。

One of Guido's key insights is that code is read much more often than it is 
written. The guidelines provided here are intended to improve the readability of 
code and make it consistent across the wide spectrum of Python code. As PEP 20 
says, "Readability counts". 
+0

我真的很喜歡它,如果誰低估了我會解釋這個答案有什麼問題。 – Shashank

3

均勻性。

此外,選項卡可以是多個長度(視覺上),而空間總是空間。

查看PEP8瞭解更多關於Python Style的信息。

4

因爲python是空白敏感的 - 如果一行有四個空格,下一行有一個標籤,python將不會看到它們縮進相同,給你編譯錯誤,或者更糟糕的是,以某種方式執行的代碼你不想要。因爲他們看起來與你一樣,你將無法輕易區分這些差異。

因此,請將您的編輯器設置爲不使用標籤,以便您可以信任您的眼睛。

+2

切換「選項卡」和「空格」和相同的參數適用。這沒什麼意義,特別是如果你有一個好的編輯器。 – Veedrac

+2

當這個答案完全錯誤時,如果這個答案有4個upvotes,這是令人尷尬的,當他們完全正確時,每個其他答案都有0或-1的分數。 – Shashank

+0

這個答案其實是正確的。 Python將選項卡視爲等同於8個空格。所以如果你在你的編輯器中將製表符設置爲4,那麼這行縮進4個空格和行縮進1製表符看起來像他們排隊,*他們不排隊就Python而言。* – kindall