-1

我正在创建一个像这样的简单 web.py 服务

urls = (
    '/test', 'index'
)

class index:
    def GET(self):
        user_data = web.input()
        return performstuff(user_data.color, user_data.shade)

    def performstuff(color, shade):
        return "color is " + color + " shade is: " + shade

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

当我运行它并转到:http://:8080/test?color=red&shade=dark 时出现错误global name 'performstuff' is not defined

我该如何解决这个问题?基本上我正在尝试在我的类中创建另一个函数,以便它可以执行一些业务逻辑,然后我可以简单地在我的 GET 方法中返回它的结果。

4

3 回答 3

2

对于python对象,成员函数需要用 引用self,即:

def GET(self):
    user_data = web.input()
    return self.performstuff(user_data.color, user_data.shade)
于 2013-10-07T21:19:24.747 回答
1

performstuff是 的一种方法class index,因此,您必须在它前面加上self.

def GET(self):
    user_data = web.input()
    return self.performstuff(user_data.color, user_data.shade)
于 2013-10-07T21:20:55.173 回答
0

@安东尼

为了访问 的performstuff方法class doit,您可以创建类 ( 的实例myInstance = doit(); myInstance.performstuff(),或者@classmethod在方法声明上方添加,然后说doit.performstuff()

于 2013-10-07T21:24:57.290 回答