這篇文章主要介紹了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取得目前運行函數名稱的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!