天天看點

Python TabError: inconsistent use of tabs and spaces

TabError:

Python TabError: inconsistent use of tabs and spaces

檢視源檔案,定位第48行代碼。這裡使用的是Ubuntu Linux的Vim編輯器。源檔案中的第48行代碼縮進位置表面看起來沒有問題。

Python TabError: inconsistent use of tabs and spaces

按一下Backspace鍵:

Python TabError: inconsistent use of tabs and spaces

再按一下Backspace鍵:

Python TabError: inconsistent use of tabs and spaces

再按一下Backspace鍵:

Python TabError: inconsistent use of tabs and spaces

按下Tab鍵:

Python TabError: inconsistent use of tabs and spaces

 再按一下Tab鍵,調整第48行代碼至正确位置,儲存檔案。

Python TabError: inconsistent use of tabs and spaces

 重新編譯:

Python TabError: inconsistent use of tabs and spaces

 編譯通過,錯誤修正成功,問題解決。

這種類型的問題通常是使用不同IDE編輯同一個源檔案引起的。一些文本編輯器自動化程度較高,包含自動縮進,另一些則沒有此類功能。在切換不同的IDE編輯同一源檔案時,很容易混入不一緻的引導符(控制符),進而導緻Python編譯器無法正常識别,抛出TabError。

為了避免此類問題,盡量不要頻繁切換IDE和作業系統來編輯同一源檔案。在無法避免切換工作環境的情況下,可以使用自動化程度較高的IDE查找和修正錯誤,例如Sublime Text在輕按兩下行号或代碼行前面空白處可以檢視代碼行縮進引導符是否一緻。而如Vim此類文本編輯器,如上面圖檔描述,可以從行列數字辨別清晰地看到問題的根源。

 Python秉着開放的原則,可以分别使用空格和制表符控制代碼行縮進。為了避免不必要的混亂,最好隻選擇一種個人最習慣的縮進風格,或者遵循項目的需要進行一緻性調整。