python获取当前运行函数名称的方法实例代码
更新时间:2017年04月06日 10:27:06 投稿:lqh
这篇文章主要介绍了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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
简单介绍Python中的filter和lambda函数的使用
这篇文章主要简单介绍了Python中的filter和lambda函数的使用,是Python学习中的基础,同时lambda匿名函数的使用也是经常被用来对比各种编程语的重要特性,言需要的朋友可以参考下2015-04-04
前女友发来加密的"520快乐.pdf",我用python破解开之后,却发现
520收到前女友发来的加密PDF文件,说打开之后有惊喜,难道是要复合?我用python破解开之后,却发现...python干货+剧情满满收藏收藏2021-08-08


最新评论