python 如何获取装饰器的实例

发布于 2022-08-29 23:07:45 字数 397 浏览 15 评论 0

代码如下:

import functools 
from functools import wraps
import inspect

def log(f):
    @wraps
    def wrapper():
        return f()
    return wrapper

def log2(f):
    def wrapper():
        return f()
    return wrapper

@log
@log2
def f():
    print "123"

def f2():
    print "456"

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天暗了我发光 2022-09-05 23:07:45

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

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

@log
def f():
print "123"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文