python

超轻量级php框架startmvc

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

更新时间:2020-04-28 19:35:01 作者:startmvc
python获取当前运行函数名称的方法实例代码摘要:c/c++中获取函数所在源码名,函数名和行号

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获取运行函数 python如何获取运行函数 python获取运行函数方法