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

400-811-9990
手机站
千锋教育

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

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

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

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:太原千锋IT培训  >  技术干货  >  python带参数的装饰器怎么写?

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

来源:千锋教育
发布人:xqq
时间: 2023-11-14 08:33:02

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培训机构:千锋教育。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python的enumerate函数有何用法?

2023-11-14

python中tempfile模块创建临时文件的方法有哪些

2023-11-14

python中time.mktime()的转换

2023-11-14

最新文章NEW

python中如何创建ndarray数组?

2023-11-14

python怎么打开mat文件?

2023-11-14

pythonjson模块有哪些函数

2023-11-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>