__init __()只需1个参数(3个给定)Google Appengine

时间:2015-04-01 19:12:52

标签: python google-app-engine webapp2

class RPCHandler(webapp2.RequestHandler):
       def __init__(self):
        webapp2.RequestHandler.__init__(self)
        self.methods = ConceptsRPCMethods()
    def get(self):
        func = None
        action = self.request.get('action')
        if action:
            if action[0] == '_':
                self.error(403) # access denied
                return
            else:
                func = getattr(self.methods, action, None)
        if not func:
            self.error(404) # file not found
            return
    else :
        args = ()
        while True:
            key = 'arg%d' % len(args)
            val = self.request.get(key)
            if val:
                args = (json.loads(val),)
            else:
                break
        result = func(*args)

       self.response.out.write(json.dumps(result))

我会更详细地解释我的节目。问题是当用户点击树结构时,它会使用回调函数向我的代码发送一个操作(使用XMLHTTPRequest对象),以决定是再将树展开一级还是在页面上显示信息。

因此,上面的代码应该从回调函数接收所需的操作,该函数发送3条信息(Get方法,函数,异步),以便ConceptRPCMethods()可以处理所请求的订单。

YAHOO.util.Connect.asyncRequest(' GET',' / rpc?' +查询,回调);

我想我需要让python代码接收3个参数,但我不知道在哪里添加它或如何???

非常感谢

1 个答案:

答案 0 :(得分:0)

class foo(object):

    def __init__(self, arg1, arg2):
       blah
       blah 

__init__默认使用self,因此请确保您只传递其他参数:arg1和arg2。

您的类构造函数很可能不需要任何其他参数,但是您将一些参数传递给构造函数,因此会传递错误消息。