我的aiohttp中间件获取函数作为参数而不是已传递给路由的绑定方法。如何解释这种行为?如何避免?
JSONObject aJsonObject = new JSONObject(aJsonResponse);
String aId = aJsonObject.getString("id");
String aNome = aJsonObject.getString("name");
答案 0 :(得分:2)
如果处理程序是按类组织的并且已经传递给路由, aiohttp 使用 partial.wraps 将这些处理程序与装饰器包装在一起,并使其像通常的函数一样。因此不可能直接将此函数用作对象方法。
它们只能在展开后用作方法:
handler.__wrapped__.__self__
或handlers类可以作为web.Application()值传递,因为它具有MutableMapping协议:
with RequestHandler(self.conf_path) as handler:
self.app["handler"] = handler
可能会被称为:
class_handler = request.app["handler"]