美文网首页
Python Frame

Python Frame

作者: Cheong_Hoo | 来源:发表于2016-12-21 17:19 被阅读0次

    sys._getframe([depth])
    Return a frame object from the call stack
    depth 表示调用栈的深度,默认为0,返回栈顶的框架

    Frame objects
    Frame objects represent execution frames

    Special read-only attributes: f_back is to the previous stack frame (towards the caller), or None if this is the bottom stack frame; f_code is the code object being executed in this frame; f_locals is the dictionary used to look up local variables; f_globals is used for global variables; f_builtins is used for built-in (intrinsic) names; f_lasti gives the precise instruction (this is an index into the bytecode string of the code object).

    Special writable attributes: f_trace, if not None, is a function called at the start of each source code line (this is used by the debugger); f_lineno is the current line number of the frame — writing to this from within a trace function jumps to the given line (only for the bottom-most frame). A debugger can implement a Jump command (aka Set Next Statement) by writing to f_lineno.

      import sys
      
      def get_cur_info():
            print sys._getframe().f_code.co_filename  #当前文件名,可以通过__file__获得
            print sys._getframe(0).f_code.co_name  #当前函数名
            print sys._getframe(1).f_code.co_name #调用该函数的函数的名字,如果没有被调用,则返回<module>,貌似call stack的栈底
            print sys._getframe().f_lineno #当前行号
    

    相关文章

      网友评论

          本文标题:Python Frame

          本文链接:https://www.haomeiwen.com/subject/ssiqvttx.html