请教Python类中闭包出错原因,python出错,class yoyo(o
请教Python类中闭包出错原因,python出错,class yoyo(o
class yoyo(object): def __init__(self): self.is_logined = False def login(self): print "do login" self.is_logined = True def login_required(self,func): @functools.wraps def wrapper(self,*args,**kwargs): return func(self,*args,**kwargs) if self.is_logined: return wrapper self.login() return wrapper @login_required def test_login(self): print 'testing:login'
代码出错: login_required() takes exactly 2 arguments (1 given)
第一次在类中写闭包,请教哪里出错了
你的login_required只得到了test_login一个参数,还需要有self。
login_required改成这样:
def login_required(func): @functools.wraps def wrapper(self,*args,**kwargs): if not self.is_logined: self.login() return func(self,*args,**kwargs)
然后,login_required在python中通常称为装饰器。
正确答案 :
class yoyo(object): def __init__(self): self.is_logined = False def login(self): print "do login" self.is_logined = True def login_required(self,func): @functools.wraps(func) def wrapper(self,*args,**kwargs): return func(self,*args,**kwargs) if self.is_logined: return wrapper self.login() return wrapper @login_required def test_login(self): print 'testing:login'
编橙之家文章,
相关内容
- Python \"(.*?)\"正则表达式含义是?,python正则表达式
- django admin SAE样式无法正常显示有图,djangosae,gg了网上的
- Flask Uploads上传文件报RuntimeError是什么错误,flaskruntim
- python2.7 报import错误,我已经安装tushare,python2.7tushare,系
- Python内部用BeautifulSoup方式提取锚文本怎么实现,,超链
- Flask sqlalchemy数据未存储到数据库中的原因,flasksqlalc
- python正则报错AttributeError:'NoneTyep'object....,,import urlli
- 在MySQL中运行timedelta时报错有图,求原因,mysqltimedelt
- python将变量作为字典key存储怎么操作,python变量字典
- python (2006, 'MySQL server has gone away'),pythonmysql,max_allowed
评论关闭