3

次のプログラムを作成しましたが、何が問題なのかわかりません。

File "Button_2.py", line 9
""" Initialise the Frame. """
                            ^
  IndentationError: expected an indented block

これは私のコードのイメージです:

ここに画像の説明を入力

ここで何が起こっているのですか?

4

4 に答える 4

5

docstring のインデント__init__がオフになっています (1 インデント レベルを右に移動する必要があります) ... インデントroot.mainloop()もオフになっています。

于 2012-10-26T12:18:46.137 に答える
2

9 行目のインデントが間違っています。つまり、docstring は次のように 1 レベル右にインデントする必要があります。

def __init__(self, master):
    """ Initialise the Frame. """
    Frame.__init__(self, master)

この理由は、Python がインデントを使用して、コードのブロックが属するクラス、関数、または構造 (ループまたは if..else ステートメントなど) をインタープリターに伝えるためです。これは、プログラムのクラス、メソッド、またはその他のフロー制御部分を指定するために使用する、Java の中かっこに相当します。ここで詳細を読むことができます: http://www.secnetix.de/olli/Python/block_indentation.hawk

PS root.mainLoop() は、左にインデント解除する必要があります。これは、インデント レベルが 0 のメイン プログラムの一部であるためです。

于 2012-10-26T12:29:14.530 に答える
1

次のように docstring をインデントする必要があります。

def __init__(self, master):
    """ Initialise the Frame. """
    Frame.__init__(self, master)
于 2012-10-26T12:20:22.857 に答える
0

行 5 は、行 6 に合わせて、さらに 1 レベルインデントする必要があります。

于 2012-10-26T12:21:36.827 に答える