韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python高级 > 一个例子解释python装饰器

一个例子解释python装饰器

头像

silencement

2019-07-13 15:25:523025浏览 · 0收藏 · 0评论

谈到python装饰器,一般都先提到函数式编程,但是其实运用python装饰器,和知不知道他是函数式编程没啥关系。

例子

def decorator(func):
    def wrapper(*args, **kwargs):
        print('我是装饰器呦')
        return  func(*args, **kwargs)
    return wrapper
    
@decorator
def test():
    print('我是test')
    
test()

输出如下

我是装饰器呦
我是test

其实就这么简单,完全可以把代码里的@理解为我们聊天中用的@,在调用某一个函数的时候@你想调用的装饰器函数,然后就可以在函数自身代码不变的情况下、增添一些具有普适性的功能。

应用

那么装饰器能做什么呢?最简单的一个应用,计算函数运行时间啊。

import time

def run_time(func):
    def wrapper(*args, **kw):
        t = time.time()
        ans = func(*args, **kw)
        t = time.time() - t
        return ans, t
    return wrapper
    
@run_time
def test():
    x=1
    for i in range(10 ** 6):
        x += 1
    return x
    
test()

输出如下

(1000001, 0.08555388450622559)

当然,装饰器的应用不止如此,它还可以传递参数,著名的用法比如web框架flask的路由配置,有兴趣可以阅读一下它的源码,很漂亮。

所需基础

为了彻底理解装饰器,有两个基础知识要巩固一下。一个是闭包函数,一个是可变参数。

补充

我们给上面的装饰器加一个参数:

import time

def run_time(text):
    def decorator(func):
        def wrapper(*args, **kwargs):
            t = time.time()
            ans = func(*args, **kwargs)
            t = time.time() - t
            if t>text:
                return ans, '太慢'
            else:
                return ans, '正常'    
        return wrapper
    return decorator
    
@run_time(1)
def test():
    x=1
    for i in range(10 ** 6):
        x += 1
    return x
    
test( )
关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

久久久综合精品一区二区三区| 白日梦我电视剧免费观看完整版| 我把刘姨俩腿扛在肩上是哪一集的 | 温柔女教师在线观看电视剧大全 | 亚洲精品国偷自产久色| 女儿与爸爸高清免费版电视剧 | 《办公室高潮秘书2》电影| 苍井空| 双男床上剧烈运动会怎么消除| B站未过审的跳舞视频| 小说适合晚上看的书| 暴躁少女免费看高清电视剧| 男朋友摸完小花园小肚子有点痛| 《帐篷里的秘密》动漫| 《睡眠指导1-6集》| 少妇激情偷公乱140章| 《法国空乘9》| 欧美人动物PPT免费模板大全| 黑人空乘伦理5| 无人区免费观看高清电视剧| 道士下山在线观看| 《肉体暴力强伦轩》| 《艾娃》法国| 黑人空乘伦理5| 《黑人性奴2》免费观看| 《特别酒店》免费观看| 《野外強轰》完整版| 《熟妇的荡欲》免费看| 欧美片《肉欲进入》| 《指尖湿热》作者:糖醋排骨| 《暴雨回不了家去上司家》| 泰国电影《初次深交流》| 《性呻吟》伦理| 《美丽妻子替夫还债》剧情| 我和两个小婕子做过爱| 适合做前看的短篇小说| 被两个老头又日又添| 高清国产少女免费观看电视剧| 罗志祥多人| 少女哔哩哔哩免费高清观看2| 美女被咬小头头视频大全