PHP前端开发

利用python获取当前运行函数名称的方法

百变鹏仔 2小时前 #Python
文章标签 函数

这篇文章主要介绍了python获取当前运行函数名称的方法实例代码的相关资料,需要的朋友可以参考下

python获取当前运行函数名称的方法实例代码

摘要: c/c++中获取函数所在源码名,函数名和行号的方法很简单 FILE,FUNCTION和LINE python没有这种语法,但也可以通过某种方法得到,这里给出例子,使用异常信息得到【可能会损失性能】

直接贴代码[可参考python核心编程4.4]

#获取调用该函数所在(被调用)的函数名

立即学习“Python免费学习笔记(深入)”;

#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