日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統 1664 0

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


          

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 周至县| 罗城| 中江县| 临城县| 新沂市| 枞阳县| 肇州县| 邢台市| 安康市| 崇信县| 太康县| 镇平县| 林西县| 凤翔县| 抚顺市| 香格里拉县| 左贡县| 曲周县| 大英县| 元氏县| 丰顺县| 彩票| 拜泉县| 金堂县| 甘孜| 常州市| 顺平县| 安国市| 平凉市| 保靖县| 六盘水市| 乐至县| 吉首市| 保康县| 宾阳县| 上杭县| 沙河市| 会同县| 荆门市| 临城县| 新郑市|