2012-01-11 9 views
2

このコードで何が問題なのか分かりませんが、IndentationErrorがスクリプトを実行すると表示されます。Python:このクラス定義で何が間違っていますか(インデントエラー)

import web 
import json 

urls = (
    '/(.*)', 'handleRequest' 
) 
app = web.application(urls, globals()) 

class handleRequest: 
    def GET(self, method_id): 
     if not method_id: 
      return json.dumps({'ok':0}) 
     else: 
      return json.dumps({'ok': method_id}) 

    def POST(self): 
     i = web.input() 
     pass 

if __name__ == "__main__": 
    app.run() 

これは私がスクリプトを実行しようとしたときに私が取得コンソールエラーメッセージです:

>>>  def POST(self): 
    File "<stdin>", line 1 
    def POST(self): 
    ^
IndentationError: unexpected indent 
>>>   i = web.input() 
    File "<stdin>", line 1 
    i = web.input() 
    ^

私はインデントをチェックしている - と私は、ファイル全体で使用しているのと同じ4つのスペース - 午前私は何かが欠けている?

+0

多分いくつかのタブがありますか? –

答えて

6

「スクリプトを実行していません。あなたはREPLに入力しています。内容をファイルに保存し、例えばファイル名でファイルを実行する。 python somescript.py

+0

あなたはそうです - それはVIMが "ペースト"操作の間にスペースではない(しかし見えない)文字を埋め込んでいるようです。学んだ教訓。 –

5

GETの末尾からPOSTの先頭までの行にインデントがありません。

(あなたが表示される)Pythonは、ファイルを実行しているときにはREPLに入力するとき、これは、[OK]をする必要があり、PythonはhandleRequest

0

あなたにそれを貼り付けるクラスに終わりとして空行を取りますインタラクティブセッション?あなたのメソッド間に改行を入れることはできません(空白行はインタープリタにクラスが完了したことを伝えます)

関連する問題