博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习日记(九) 装饰器
阅读量:5142 次
发布时间:2019-06-13

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

1.import time

  a.time.time()

  获取到当前的时间,返回值为浮点型

import timeprint(time.time())  #1565422783.6497557

  b.time.sleep()

  让程序执行到这个位置暂停一会

import timestart = time.time()time.sleep(0.5)print('hello world!')end = time.time()print(end - start)  #0.5000286102294922

 

2.装饰器

开发原则:开放封闭原则

装饰器的作用:在不改变原函数的情况下,在函数的前后添加功能

装饰器的本质:闭包函数

 

当想要知道一个程序执行的时间

import timestart = time.time()time.sleep(0.5)print('hello world!')end = time.time()print(end - start)  #0.5000286102294922

再将里面的功能单独拉出来变成一个函数

import timedef func():    time.sleep(0.5)    print('hello world!')def timer(func):    start = time.time()    func()    end = time.time()    print(end - start)timer(func)     #hello world!                #0.5000286102294922

将timer变成一个简单的装饰器

import timedef func():                 #被装饰的函数    time.sleep(0.5)    print('hello world!')def timer(func):            #装饰函数    def inner():        start = time.time()        func()        end = time.time()        print(end - start)    return inner            #回传inner函数的内存地址get_inner = timer(func)     #后者得到的是inner的内存地址再赋值给get_innerget_inner()                 #hello world!                            #0.5000286102294922

执行步骤:

开放封闭原则:开放指的是对扩展开放,封闭指的是对修改封闭

语法糖:@装饰器函数名  可以替代下面的写法

装饰带参数函数的装饰器

装饰带有多个参数的函数装饰器

总结:装饰器的模板

import timedef wrapper(f):    def inner(*args,**kwargs):        #在被装饰函数之前要做的事        res = f(*args,**kwargs)        #在被装饰函数之后要做的事        return res    return inner@wrapper# func = wrapper(func)def func():            #被装饰的函数    returnret = func()print(ret)

 

转载于:https://www.cnblogs.com/Fantac/p/11332275.html

你可能感兴趣的文章
【luogu4185】 [USACO18JAN]MooTube [并查集]
查看>>
手机号脱敏处理
查看>>
CI控制器调用内部方法并载入相应模板的做法
查看>>
Hdu - 1002 - A + B Problem II
查看>>
HDU - 2609 - How many
查看>>
每天CookBook之Python-003
查看>>
每天CookBook之Python-004
查看>>
Android设置Gmail邮箱
查看>>
StringBuffer的用法
查看>>
js编写时间选择框
查看>>
PHP压缩文件操作
查看>>
Java数据结构和算法(四)--链表
查看>>
JIRA
查看>>
小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
查看>>
深浅拷贝(十四)
查看>>
由级别和性格特征将程序员分类 ---看看你属于哪一种
查看>>
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
PE知识复习之PE的导入表
查看>>
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>