博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基本装饰器
阅读量:6694 次
发布时间:2019-06-25

本文共 2600 字,大约阅读时间需要 8 分钟。

#基本代码:    import time    def decoratorrunlog_args(logval):            print("logval is runing"+str(logval))            def decoratorrunlog(func):                    print("outerlog is runing")                    def inner(*args,**kwargs):                            print("innerlog is runing")                            stime = time.time()                            time.sleep(1)                            res = func(*args,**kwargs)                            etime = time.time()                            print(etime - stime)                            print("innerlog is stoping")                            return  res                    print("outerlog is stoping")                    return  inner            print("logval is stoping")            return  decoratorrunlog    def decoratortuntime_args(timeval):            print("timeval is runing:"+str(timeval))            def decoratorruntime(func):                    print("outer is runing")                    def inner(*args,**kwargs):                            print("inner is runing")                            stime = time.time()                            time.sleep(1)                            res = func(*args,**kwargs)                            etime = time.time()                            print(etime - stime)                            print("inner is stoping")                            return  res                    print("outer is stoping")                    return  inner            print("timeval is stoping")            return  decoratorruntime    @decoratorrunlog_args("argsonelog")    @decoratortuntime_args("argstwotime")    def funcone(pname):            print("this is a basic function")            return  pname    res = funcone("lily")    print(res)#执行结果       logval is runingargsonelog        logval is stoping        timeval is runing:argstwotime        timeval is stoping        outer is runing        outer is stoping        outerlog is runing        outerlog is stoping        innerlog is runing        inner is runing        this is a basic function        1.000281810760498        inner is stoping        2.000582218170166        innerlog is stoping        lily#图示

python基本装饰器

#说明:    图中:1.1,1.2,2.1,2.2 中,  "."之前的数字表示执行的步骤,之后的数字表示多个装饰器的数字标识;    #运行顺序        基本是按照代码编写顺序执行        第一步:1.1、1.2: 执行带参数的装饰器本身,        第二步:2.2、2.1:执行装饰器        第三步:3.1、3.2:执行装饰器内部的闭包函数        第四步:func:执行装饰器装饰的函数本身        第五步:5.2、5.1:执行闭包中func后面的部分        装饰器执行的顺序:按照其在所装饰的函数中放置的顺序来执行。首先从最上面的装饰器开始按顺序执行到函数位置,然后在从函数位置向上执行到最上面的装饰器,再接着向下执行,如此反复直到装饰器最内部的函数执行到被装饰的函数本身之后才开始执行被装饰的函数。顺序类似于:↓↑↓↑

转载于:https://blog.51cto.com/11089980/2355409

你可能感兴趣的文章
leetcode:Rotate List
查看>>
webpack 使用环境变量
查看>>
NGOSS 初识
查看>>
16-组件的创建
查看>>
StatefulSet(一):拓扑状态
查看>>
[转] iOS性能优化技巧
查看>>
python例题21--30
查看>>
历届试题 带分数
查看>>
amd屏幕亮度无法调整,无法调节亮度
查看>>
PhotoShop基础工具 -- 移动工具
查看>>
js 监控iframe URL的变化
查看>>
浏览器标签显式网页logo
查看>>
[emuch.net]MatrixComputations(1-6)
查看>>
Latex
查看>>
Android学习笔记(八)——四种基本布局
查看>>
爬虫--Scrapy框架的基本使用
查看>>
(最小生成树) Building a Space Station -- POJ -- 2031
查看>>
maven常用技巧
查看>>
Luogu_2876_[USACO07JAN]解决问题Problem Solving
查看>>
C#多态问题
查看>>