位置: IT常识 - 正文
推荐整理分享一个例子解释python装饰器(一个例子解释唯物辩证法三大规律),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:一个例子解释民事法律关系的设立变更终止,一个例子解释矛盾,一个例子解释民事法律关系的设立变更终止,一个例子解释服务贸易模式,一个例子解释元宇宙,一个例子解释文化冰山理论,一个例子解释元宇宙,一个例子解释资产证券化,内容如对您有帮助,希望把文章链接给更多的朋友!
谈到python装饰器,一般都先提到函数式编程,但是其实运用python装饰器,和知不知道他是函数式编程没啥关系。
例子
defdecorator(func):defwrapper(*args,**kwargs):print('我是装饰器呦')returnfunc(*args,**kwargs)returnwrapper@decoratordeftest():print('我是test')test()输出如下
我是装饰器呦我是test其实就这么简单,完全可以把代码里的@理解为我们聊天中用的@,在调用某一个函数的时候@你想调用的装饰器函数,然后就可以在函数自身代码不变的情况下、增添一些具有普适性的功能。
应用
那么装饰器能做什么呢?最简单的一个应用,计算函数运行时间啊。
importtimedefrun_time(func):defwrapper(*args,**kw):t=time.time()ans=func(*args,**kw)t=time.time()-treturnans,treturnwrapper@run_timedeftest():x=1foriinrange(10**6):x+=1returnxtest()输出如下
(1000001,0.08555388450622559)当然,装饰器的应用不止如此,它还可以传递参数,著名的用法比如web框架flask的路由配置,有兴趣可以阅读一下它的源码,很漂亮。
所需基础
为了彻底理解装饰器,有两个基础知识要巩固一下。一个是闭包函数,一个是可变参数。
补充
importtimedefrun_time(text):defdecorator(func):defwrapper(*args,**kwargs):t=time.time()ans=func(*args,**kwargs)t=time.time()-tift>text:returnans,'太慢'else:returnans,'正常'returnwrapperreturndecorator@run_time(1)deftest():x=1foriinrange(10**6):x+=1returnxtest()上一篇:织梦dedecms自定义表单添加地区联动显示数字解决方法(织梦怎么改网站主页)
友情链接: 武汉网站建设