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 に答える