我已经写了一个装饰器来验证电话。它只对一个参数有效,但对更多参数则不行,触发inner() takes exactly 1 argument (2 given)
。我有一点回叫意大利面,因为我使用龙卷风,但我不确定什么是最好的方法来做这个。在
#this works
class FirstHandler(BaseHandler):
@asynchronous
@oauth_machine.auth
def post(self):
print self.user
self.finish()
#this now also does
class SecondHandler(BaseHandler):
@asynchronous
@oauth_machine.auth
def get(self, args):
self.write("ok")
self.finish()
装饰函数
^{pr2}$编辑:
已将代码更新为工作版本。在
谢谢!在
一开始我以为问题很简单,但后来你发布了一个与原始错误信息相矛盾的回溯。然而,我认为问题仍然很简单,假设回溯错误是正确的。回想一下:
只是语法上的甜言蜜语:
^{pr2}$因此,当您在
get
上使用@oauth_machine.auth
时,它将通过一个闭包传递到inner
,作为fn
。在然后它被传递到
get_user_by_credentials
,又称为fn
,这又产生另一个闭包,它将fn
传递给callback
。在callback
在inner
中被定义为done_auth
,因此{get
)的菜单被传递到那里,然后在^{但是
fn
(即get
)有两个参数。你只传递了一个,导致了一个错误。在相关问题 更多 >
编程相关推荐