python 如何获取函数上的装饰器元信息?以及知道装饰器,如何获取被装饰过的函数信息?
@decorator_a
def func_a():
pass
@decorator_b(arg)
@decorator_a
def func_b():
pass
如上所示,若我已知:
func = func_a
deco = decorator_a
请问:
- 我如何获得func上装饰器的元信息?
如:
meta = get_func_decorator(func)
print(meta.__name__)
------
decorator_a
- 我如何获得deco装饰过的函数信息?
如:
meta = get_deco_functions(deco)
print([x.__name__ for x in meta])
---------
[func_a, func_b]
谢谢大佬指教!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
估计没有一般性的方法,因为有些库可以帮助隐藏已修饰函数的事实。这里有一些非通用的做法,可以参考:
添加实际的内省方法来做到这一点,
要检查的代码:
现在,可以使用以下内容检查上述
Foo
类...应该会打印出: