国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > 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( )
关注

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

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

地下室SMS录制的全部内容| 男按摩师舌头伸进去了SPA漫画| 《法国空乘5》观看| 完美上司短剧免费完整版| 老头跪在两腿之间吃奶| 九1黄9·1| 午马影视免费观看电视剧| 两个男人搞一个女人的心理| 美女和帅哥一起努力生产豆浆的视.. | 美国伦理〈欲奴3)| 黑科网今日黑科独家爆料| 美女和帅哥一起努力生产豆浆| 游泳教练在水下狂C我| 女人大阴唇夹缝是阴虚还是阳虚| 男人问你舒服吗出于什么心理 | B站暴躁少女CSGO| 双乳被四个男人吃奶| 扒开女人内裤猛进猛出流出白液| 人狗大战2免费观看正版| 酒店实拍100部视频最新进展 | 少妇被大黑捧猛烈进出动态图| 坤坤寒入桃子里电视剧免费看| 口咬的10个绝招图片| 《深度》大尺度床戏| 爱爱小说| 欧美叔叔别撩我免费观看电视剧| 狠狠人妻久久久久久综合九色 | 妈妈在家穿超薄内裤的注意事项| 妈妈装睡配合孩子阴阳调和| 美国伦理性淫梦| 野花韩国视频中文免费观看7| 精品一区二区三区| 双乳被四个男人吃奶H文| 100种双人插画姿势素材| 鲁鲁射击免费播放电视剧全部| 玩具体验馆BY 笔趣阁| 女生给男生吃小头头| 屁股翘起来跪在床上有好处吗| 饭桌上张开腿给公| 欧美大片PPT免费PPT| 桃色视频