码迷,mamicode.com
首页 > 编程语言 > 详细

python之装饰器

时间:2018-04-30 11:44:00      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:func   pre   就是   div   装饰器   其他   示例   art   for   

 

一:装饰本质就是函数,功能是为其他函数添加附加功能 

二:原则:

1)不修改被修饰函数的源代码

2)不修改被修饰函数的调用方式

三:装饰器的实现

1)装饰器=高阶函数+函数嵌套+闭包

示例:将下列函数增加一个执行时间的功能

import time
def cal(l):
    res=0
    for i in l:
        res+=i
    return res
ret=cal(range(20))
print(ret)

 此时为了保证装饰器的原则,我们需要另外写一个执行时间的函数

给函数添加装饰器,实现打印出运行时间的功能
def timer(func):
    def wapper(*args,*kwargs):
        starttime = time.time()
        res = func(*args,**kwargs)
        stoptime = time.time()
        print("函数的运行时间为:%s" %(stoptime-starttime))
        return  res
    return wapper

  装饰器的用法:在第一个函数中声明一下即可@timer

@timer
def cal(l):
    res=0
    for i in l:
        res+=i
    return res
ret=cal(range(20))
print(ret)

  

 

python之装饰器

标签:func   pre   就是   div   装饰器   其他   示例   art   for   

原文地址:https://www.cnblogs.com/wangyue0925/p/8973095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!