欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python獲取當前運行函數(shù)名稱的方法實例代碼

 更新時間:2017年04月06日 10:27:06   投稿:lqh  
這篇文章主要介紹了python獲取當前運行函數(shù)名稱的方法實例代碼的相關資料,需要的朋友可以參考下

python獲取當前運行函數(shù)名稱的方法實例代碼

摘要: c/c++中獲取函數(shù)所在源碼名,函數(shù)名和行號的方法很簡單 __FILE__,__FUNCTION__和__LINE__ python沒有這種語法,但也可以通過某種方法得到,這里給出例子,使用異常信息得到【可能會損失性能】

直接貼代碼[可參考python核心編程4.4]

#獲取調用該函數(shù)所在(被調用)的函數(shù)名

#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對象,即本函數(shù)的frame信息
    #print frameObj.f_code.co_name,frameObj.f_lineno         #請在使用的時候將其注釋
    Upframe = frameObj.f_back                           #獲取該代碼段的frame信息,即調用該函數(shù)的函數(shù)frame
    #print Upframe.f_code.co_name, Upframe.f_lineno          #請在使用的時候將其注釋
    return (Upframe.f_code.co_name, Upframe.f_lineno)[0]      #獲取名稱
調用方法

獲取文件名路徑,函數(shù)名,行號

------------------------------------------------------------------------------

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

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

最新評論