python获取当前运行函数名称的方法实例代码
发布时间:2020-12-17 08:32:05 所属栏目:Python 来源:网络整理
导读:python获取当前运行函数名称的方法实例代码 摘要: c/c++中获取函数所在源码名,函数名和行号的方法很简单 __FILE__,__FUNCTION__和__LINE__ python没有这种语法,但也可以通过某种方法得到,这里给出例子,使用异常信息得到【可能会损失性能】 直接贴代码[可
python获取当前运行函数名称的方法实例代码 摘要: c/c++中获取函数所在源码名,函数名和行号的方法很简单 __FILE__,__FUNCTION__和__LINE__ python没有这种语法,但也可以通过某种方法得到,这里给出例子,使用异常信息得到【可能会损失性能】 直接贴代码[可参考python核心编程4.4] #获取调用该函数所在(被调用)的函数名 #author:peterguo@vip.qq.com def get_func_name(): import sys try: raise Exception except: exc_info = sys.exc_info() #返回 异常类型,异常,traceback对象 traceObj = exc_info[2] #traceback对象 frameObj = traceObj.tb_frame #获取frame对象,即本函数的frame信息 #print frameObj.f_code.co_name,frameObj.f_lineno #请在使用的时候将其注释 Upframe = frameObj.f_back #获取该代码段的frame信息,即调用该函数的函数frame #print Upframe.f_code.co_name,Upframe.f_lineno #请在使用的时候将其注释 return (Upframe.f_code.co_name,Upframe.f_lineno)[0] #获取名称 调用方法 获取文件名路径,函数名,行号 ------------------------------------------------------------------------------ def getCurRunPosInfo(): import sys try: raise Exception except: exc_info = sys.exc_info() traceObj = exc_info[2] frameObj = traceObj.tb_frame #print frameObj.f_code.co_name,frameObj.f_lineno Upframe = frameObj.f_back #print Upframe.f_code.co_name,Upframe.f_lineno return (Upframe.f_code.co_filename,Upframe.f_code.co_name,Upframe.f_lineno) #测试代码 def test1(): print getCurRunPosInfo() def test2(): print get_func_name() 输出: >>('demo.py','test1',44) >>test2 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |