在Python中,如何获取当前帧?

2024-04-16 11:54:02 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

我用这些小家伙来调试和记录:

import sys

def LINE( back = 0 ):
    return sys._getframe( back + 1 ).f_lineno
def FILE( back = 0 ):
   return sys._getframe( back + 1 ).f_code.co_filename
def FUNC( back = 0):
    return sys._getframe( back + 1 ).f_code.co_name
def WHERE( back = 0 ):
   frame = sys._getframe( back + 1 )
   return "%s/%s %s()" % ( os.path.basename( frame.f_code.co_filename ), 
                           frame.f_lineno, frame.f_code.co_name )
import sys    
sys._getframe(number)

当前帧为0,向上帧为1,依此类推。

我在python中找到的最好的框架介绍是here

但是,请查看inspect模块,因为它对帧执行最常见的操作。

最好的答案是使用inspect模块;而不是sys中的私有函数。

import inspect

current_frame = inspect.currentframe()

相关问题 更多 >