Python:这个类定义有什么问题(缩进错误)

2 投票
3 回答
2016 浏览
提问于 2025-04-17 10:00

我看不出这段代码哪里有问题,但我运行脚本时却出现了缩进错误

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个空格,难道我还漏掉了什么吗?!

3 个回答

0

你是在一个交互式的环境里粘贴这个吗?你不能在你的方法之间留空行(空行会让解释器认为这个类已经结束了)

5

GET结束和POST开始之间的那一行没有缩进。

在Python执行一个文件的时候,这样是没问题的。但是如果你是在REPL环境中输入(看起来你是在这样做),Python会把那空行当作是handleRequest这个类的结束。

6

你不是在“运行脚本”,而是在REPL中输入它。把内容保存到一个文件里,然后通过比如 python somescript.py 来执行这个文件。

撰写回答