emacs中的Python识别混乱

emacs中的Python识别混乱,python,emacs,indentation,Python,Emacs,Indentation,我正在emacs中编辑python代码。出于某种未知的原因,有时我在emacs中打开一个.py文件,不同的块缩进不同,即使它们运行正常。我有一块看起来像: class Foo: def __init__(self, params, p): """ Foo """ self.params = params self.p = p if self.p: if (not ('A' in self.params)) or \

我正在emacs中编辑python代码。出于某种未知的原因,有时我在emacs中打开一个.py文件,不同的块缩进不同,即使它们运行正常。我有一块看起来像:

class Foo:
    def __init__(self, params, p):
    """
    Foo
    """
        self.params = params
    self.p = p
    if self.p:
        if (not ('A' in self.params)) or \
                (not 'B' in self.params):
        raise Exception, "Error"
self.params=…
行的缩进显然与下一行
self.p=p
不同,但代码仍在运行

这是什么原因造成的?如何修复

当我跑步时:

$ reindent -d ~/code.py
在上面的文件中,没有打印任何内容

实际上,当我将它粘贴到这个文本框中时,它看起来是正确的,直到我按下
{}
按钮使它看起来像代码。有什么线索吗?用这种行为编写代码是不可能的

我不认为它混合了制表符和空格,因为emacs中的
空白模式
显示:


这对我来说并不适用。确保您使用的是Emacs 24.3,并且问题发生在
Emacs-nw-Q

@Kevin:我认为这不是混合使用它们,因为一个本应修复的脚本不会改变任何事情()