2012-06-20 34 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规则...