python输出函数用法(python带参数的装饰器怎么写?)
导读:1、装饰器说明...
1 、装饰器说明
装饰器看上去并没有任何参数(使用 @ 时被装饰的方法作为隐式参数传递给装饰器) 。但是 ,有时候让装饰器自带一些参数 ,可以提供更灵活的应用 。
2 、实例
我们改写 requires_ints ,使其还可以限制被装饰函数的参数的数量:
fromfunctoolsimportwraps defrequires_ints(count=0): defdecorator(func): @wraps(func) defwrapper(*args,**kwargs): values=[iforiinkwargs.values()] args_list=list(args)+[iforiinkwargs.values()] ifcount==0: #Notlimit pass eliflen(args_list)>count: raiseException(fThenumberofargumentscannotmorethan{count}) forarginargs_list: ifnotisinstance(arg,int): raiseTypeError(Onlyacceptintegers.) returnfunc(*args,**kwargs) returnwrapper returndecorator @requires_ints(5) defadd(*args): Returnthesumofallarguments returnsum(args)创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!