Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2006-09-08 08:10:45
Size: 637
Editor: auguusstt
Comment:
Revision 4 as of 2006-09-08 08:13:30
Size: 604
Editor: auguusstt
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
参考WeiZhong/DecoratorsInPython24
Line 3: Line 5:
#参考http://python.cn/pipermail/python-chinese/2006-January/021034.html
Line 13: Line 14:
   
Line 17: Line 18:
Line 20: Line 20:
}}}
输出:
Line 21: Line 23:
}}}

输出:
{{{
Line 27: Line 27:
}}}

参考WeiZhong/DecoratorsInPython24

#带参数修饰器函数被调用时必须返回一个新的修饰器函数
def decoratorArgs(x,y):
    def decorator(f):
        def func(*args,**keywordArgs):
            print 'invoke: %s(%s,%s)' % (f.__name__,x,y)
            result=f(*args,**keywordArgs)
            print 'invoked: %s(%s,%s)' % (f.__name__,x,y)
            return result
        return func
    return decorator

@decoratorArgs(1,2)
def hello(arg):
    print 'hello:',arg
hello('abc')
print

输出:

invoke: hello(1,2)
hello: abc
invoked: hello(1,2)

argsDecorator (last edited 2009-12-25 07:16:17 by localhost)