python - 如何获取在 python 中传递给我的装饰器的函数的文件名?

标签 python metaclass python-datamodel

我想获取正在修饰的函数的原始文件/脚本名等。我怎样才能做到这一点?

   def decorate(fn):
        def wrapped():
            return "scriptname: " + fn.scriptname?  
        return wrapped

我尝试使用 fn.__code__ 但这给了我更多我需要的东西。我可以解析该字符串以获取函数名称,但想知道是否有更优雅的方法来做到这一点

最佳答案

import inspect
inspect.getfile(fn)

这不适用于 builtin functions不过,对于这些,您必须回退到 inspect.getmodule

关于python - 如何获取在 python 中传递给我的装饰器的函数的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152911/

相关文章:

python - 无效的 block 标记 : 'pay_pal' , 预期 'endblock' 或 'endblock content'

python - boto3 get_query_runtime_statistics 有时不返回 "rows"数据

python - 如何将装饰器应用于父类(super class)的方法?

python - Python 单元测试自动生成数据

matlab - 检索添加到 MATLAB OOP 中的类的动态属性列表

python - 用数据模型方法覆盖 * 和 ** 解包?

python - 一切都大于无吗?

Python:如何获取 GPU 数量

python 应用程序(守护进程)和 systemd fedora

python - 以声明方式设置类 __name__