5

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

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

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

4

2 回答 2

16
import inspect
inspect.getfile(fn)

但是,这不适用于内置函数,您必须回退到inspect.getmodule那些函数。

于 2012-08-28T05:00:29.433 回答
1

试试这个:

return "filename: " + fn.func_code.co_filename
于 2012-08-28T04:49:22.920 回答