缩进不一致 [PYTHON] TabError [不同的编辑器]
Indentation inconsistency [PYTHON] TabError [Different Editors]
我在 Windows 的 Idle 上写了几个 python 程序。后来我在 Ubuntu 14.04 上转向 gedit。两者都有 python3 工作。
我在 gedit 中编辑了这些文件。
当我运行这些文件时,我得到
'TabError: inconsistent use of tabs and spaces in indentation'
错误,即使 VISUALLY,也没有不一致的制表符或缩进完成。
[看起来,在 Windows' 空闲时,制表符是 4 个空格宽 ,而在 gedit 中,制表符当前是 8 个空格宽。所以,我不能直接使用 TAB
。]
如何解决这个错误和问题?
有什么解决办法吗?
标准答案是配置您的编辑器(所有编辑器),使您只有空格,而且总是有四个。对于已经存在的代码,您必须将所有制表符转换为空格(sed
可以快速完成,就像您使用的任何 editor/IDE 一样)。
大多数编辑器在按 TAB
键时应该能够插入空格。
参考pep8:
Spaces are the preferred indentation method.
Tabs should be used solely to remain consistent with code that is already indented with tabs.
Python 3 disallows mixing the use of tabs and spaces for indentation.
Python 2 code indented with a mixture of tabs and spaces should be converted to using spaces exclusively.
When invoking the Python 2 command line interpreter with the -t option, it issues warnings about code that illegally mixes tabs and spaces. When using -tt these warnings become errors. These options are highly recommended!
另请参阅,this 检查制表符和空格的混合情况。
使用 Sublime Text 编辑器的人,
这样检查。
- Select所有代码。
- Select 工具。
- 点击'Install Package Control'。
- 然后单击命令面板。
- 搜索 'Convert to Tabs' 并 select 它。
- 完成。所有空格都将转换为制表符。
我在 Windows 的 Idle 上写了几个 python 程序。后来我在 Ubuntu 14.04 上转向 gedit。两者都有 python3 工作。
我在 gedit 中编辑了这些文件。
当我运行这些文件时,我得到
'TabError: inconsistent use of tabs and spaces in indentation'
错误,即使 VISUALLY,也没有不一致的制表符或缩进完成。
[看起来,在 Windows' 空闲时,制表符是 4 个空格宽 ,而在 gedit 中,制表符当前是 8 个空格宽。所以,我不能直接使用 TAB
。]
如何解决这个错误和问题? 有什么解决办法吗?
标准答案是配置您的编辑器(所有编辑器),使您只有空格,而且总是有四个。对于已经存在的代码,您必须将所有制表符转换为空格(sed
可以快速完成,就像您使用的任何 editor/IDE 一样)。
大多数编辑器在按 TAB
键时应该能够插入空格。
参考pep8:
Spaces are the preferred indentation method.
Tabs should be used solely to remain consistent with code that is already indented with tabs.
Python 3 disallows mixing the use of tabs and spaces for indentation.
Python 2 code indented with a mixture of tabs and spaces should be converted to using spaces exclusively.
When invoking the Python 2 command line interpreter with the -t option, it issues warnings about code that illegally mixes tabs and spaces. When using -tt these warnings become errors. These options are highly recommended!
另请参阅,this 检查制表符和空格的混合情况。
使用 Sublime Text 编辑器的人, 这样检查。
- Select所有代码。
- Select 工具。
- 点击'Install Package Control'。
- 然后单击命令面板。
- 搜索 'Convert to Tabs' 并 select 它。
- 完成。所有空格都将转换为制表符。