千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > python带参数的装饰器怎么写?

python带参数的装饰器怎么写?

来源:千锋教育
发布人:xqq
时间: 2023-11-13 13:02:03 1699851723

python带参数的装饰器怎么写?

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(f'Thenumberofargumentscannotmorethan{count}')

forarginargs_list:

ifnotisinstance(arg,int):

raiseTypeError('Onlyacceptintegers.')

returnfunc(*args,**kwargs)

returnwrapper

returndecorator

@requires_ints(5)

defadd(*args):

'''Returnthesumofallarguments'''

returnsum(args)

以上就是python带参数装饰器的写法,希望能对大家有所帮助,更多Python学习教程请关注IT培训机构:千锋教育。

tags: python培训
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT