求一个Python获取装饰器实例,python获取装饰实例,代码如下:import


代码如下:

import functools from functools import wrapsimport inspectdef log(f):    @wraps    def wrapper():        return f()    return wrapperdef log2(f):    def wrapper():        return f()    return wrapper@log@log2def f():    print "123"def f2():    print "456"

如上,如何判断区分出函数f,并且获取f装饰器的实例(即log以及log2的实例)?
函数f与函数f2的唯一区别就是函数f使用了装饰器.

如果你是想获取到他们的名字,直接在装饰器中print就行了,比如:
from functools import wraps

def log(f):
@wraps(f)
def wrapper():
print f.name
return f()
return wrapper

@log
def f():
print "123"

编橙之家文章,

评论关闭