2012-06-20 53 views
1

我正在從GraphServer中讀取代碼。 而有此功能有奇怪的壓痕(5號線從底部和1號線從底部開始計算計):Graphserver代碼中的Python縮進

enter image description here

那第五至底線有一個製表符,我有我的vim的集直到顯示4的縮進。底部屈服線具有一個選項卡加四個空格。所有其他行都是以空格爲首。

我認爲這樣的代碼會造成不一致,並會在Python中出現問題。但代碼似乎運行良好(我不知道如果正確運行,它可能會。)。 Python只是說好的一個標籤等於8個空格,並解釋它是這樣嗎?我有Python 2.6運行。

回答

2

是的,Python認爲一個標籤是(最多)8個空格,即每8個字符就有一個製表位。所以奇數縮進的yield行實際上與Python-vision中的其他行一致。

這樣的工作混合製表符和空格的危險。使用-tt命令行選項調用Python,讓它在這些類型的文件上引發錯誤。

+0

不完全:[文檔說](http://docs.python.org/reference/lexical_analysis.html?highlight=tab%20space#indentation),當處理一行, 「首先,製表符被替換(從左到右)一到八個空格,使得包括替換在內的字符總數是8的倍數(這與Unix所使用的規則相同)。 「 – Dougal

+2

你在技術上是正確的......最好的一種正確!更新了我的答案。 – kindall

1

請勿混用標籤和空格!這是gemeral規則...