现在的位置: 首页 > 综合 > 正文

python 函数装饰器

2014年02月17日 ⁄ 综合 ⁄ 共 529字 ⁄ 字号 评论关闭

装饰器的实际就是函数,他们接受函数对象,在适当处调用函数或者至少一些引用,返回值是一个包装了的函数对象
装饰器又分为有参和无参装饰器,无参的装饰器就是本身是一装饰器,直接把被装饰函数作为参数,进行相关操作,有参数的装饰器就是通过传入的参数,返回一个装饰器对象,然后实现对被装饰函数的操作

#!/usr/bin/env python

from time import ctime, sleep

def tsfunc(func):
   def wrappedFunc():
      print '[%s] %s() called' % (ctime(), func.__name__)
      return func()#此处实现对被装饰函数的调用
   return wrappedFunc#返回一个已包装的函数对象

@tsfunc
def foo():
   print 'inner of foo'

foo()
sleep(4)

for i in range(2):
   sleep(1)
   foo()

运行结果为

[Mon Feb 17 01:31:57 2014] foo() called
inner of foo
[Mon Feb 17 01:32:02 2014] foo() called
inner of foo
[Mon Feb 17 01:32:03 2014] foo() called
inner of foo
【上篇】
【下篇】

抱歉!评论已关闭.