全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货  >  详情

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

来源:千锋教育
发布人:xqq
2023-11-14

推荐

在线提问>>

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

相关文章

python函数超时怎么自动退出?

python中bytearray函数的作用是什么?

python matlab库有何用法?

python的enumerate函数有何用法?

如何使用python raise抛出异常?

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取