0

我正在用 Tkinter 开发 reStructuredText 编辑器。如果我运行下面的代码,我得到IndentationError ..

from Tkinter import *
from tkFileDialog import asksaveasfile as savefile

class RSTkinter:
    def __init__(self):
        self.pencere_load()
        self.araclar()

    def pencere_load(self):
        pencere.resizable(width=FALSE,height=FALSE)
        pencere.title("RSTkinter")

    def araclar(self):
        h1 = Button(text=u"Başlıklar",command=self.h1p)
        h1.place(rely=0.0)

        ..
        ..

        topic = Button(text="Topic",command=self.topic_p) # ..topic:: başlık \n\t içerik
        topic.place(rely=0.0,relx=0.63)

    def topic_p(self):
        topic = Toplevel()
        topic.title("RSTkinter - Not")
        topic.resizable(width=FALSE,height=FALSE)
        topic.geometry("200x140")

        topic_b_l = Label(topic,text=u"Topic başlığı: ")
        topic_b_l.place(relx=0.0,rely=0.0)

        self.topic_b = Text(topic)
        self.topic_b.place(relx=0.3,rely=0.0,width=130)

        topic_i_l = Label(topic,text=u"Topiç içeriği")
        topic_i_l.place(relx=0.0,rely=0.4)

        self.topic_i = Text(topic)
        self.topic_i.place(relx=0.3,rely=0.5,width=130)

        topic_y = Button(topic,text=u"Ekle",command=self.topic_yap)
        topic_y.place(relx=0.0,rely=0.2)

    def topic_yap(self):
        return self.metin.insert(END,"\n.. topic:: %s \n\t%s"%(self.topic_b.get(1.0,END)),self.topic_i.get(1.0,END)))

pencere = Tk()
rst = RSTkinter()

mainloop()

完整错误:

File "RSTkinter15.py", line 85
topic = Button(text="Topic",command=self.topic_p) #.. ^
IndentationError: unexpected indent

我能怎么做?

4

3 回答 3

1

如果错误消息告诉您有缩进错误,则可以安全地假设这是真的。调试时的一个好的经验法则是始终相信编译器/解释器告诉您的内容。

很可能你混合了空格和制表符——这是 python 的弱点之一。仔细检查您在该行和之前的行上使用了相同的空格和制表符组合。

于 2013-02-21T17:04:20.297 回答
0

这通常是一个问题,例如,与几个人一起编写一段代码或使用多个编辑器(具有不同的默认设置)进行编程:一个使用(双/四)间距,其他选项卡。为了解决这个问题,我总是使用编辑器的内置替换功能(带正则表达式):

'    ' => '\t'   # search four spaces, replace with tab
'  ' => '\t'     # search two spaces, replace with tab

“全部替换”非常有用,但要小心:你不想改变太多!并按此顺序(否则您会将所有四倍间距更改为两个制表符)。

于 2016-01-06T14:30:42.253 回答
-1

当我编写代码时,修复识别的最佳方法是转到问题上方的行并单击行尾,这样你的光标就在那里。然后按回车键,正确的缩进会出现在下一行。然后我所做的就是继续按 Delete 按钮将代码从下面移动到 python shell 为我制作的新缩进。

于 2013-02-21T10:43:25.983 回答