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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:15   1494   0



直接贴代码[可参考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


转载于:https://my.oschina.net/sanpeterguo/blog/204703

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP