您的位置:首页 > 编程语言 > Python开发

Python---装饰器

2016-03-06 12:19 405 查看
装饰器是一个非常著名的设计模式,常常被用于有切面需求的场景,较为经典的有插入日志、性能測试、事务处理等。装饰器是解决这类问题的绝佳设计。有了装饰器,我们就能够抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。

概括的讲,装饰器的作用就是为已经存在的对象加入额外的功能。

假如我要计算一个函数的运行时间:

import time

def foo():

print 'in foo()'

def timeit(func):

start = time.clock()

func()

end =time.clock()

print 'used:', end - start

timeit(foo)

计算完一个之后,我又想计算其他几个函数的运行时间。为了避免反复写类似的函数,就能够让装饰器来帮你解决问题。

import time

def timeit(func):

def wrapper():

start = time.clock()

func()

end = time.clock()

print ‘used’,end - start

return wrapper

@timeit

def function():

print 'into function()'

function()

-----------------------------------

使用内嵌包装函数来确保每次新函数都被调用

对带參数的函数进行装饰

对參数数量不确定的函数进行装饰

让装饰器带參数

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: