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

python獲取當(dāng)前運(yùn)行函數(shù)名稱的方法實(shí)例代碼

系統(tǒng) 1670 0

python獲取當(dāng)前運(yùn)行函數(shù)名稱的方法實(shí)例代碼

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

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

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

            
#author:peterguo@vip.qq.com 
def get_func_name():
  import sys
  try:
    raise Exception
  except:
    exc_info = sys.exc_info()                             #返回 異常類型,異常,traceback對(duì)象
    traceObj = exc_info[2]                               #traceback對(duì)象
    frameObj = traceObj.tb_frame                         #獲取frame對(duì)象,即本函數(shù)的frame信息
    #print frameObj.f_code.co_name,frameObj.f_lineno         #請?jiān)谑褂玫臅r(shí)候?qū)⑵渥⑨?    Upframe = frameObj.f_back                           #獲取該代碼段的frame信息,即調(diào)用該函數(shù)的函數(shù)frame
    #print Upframe.f_code.co_name, Upframe.f_lineno          #請?jiān)谑褂玫臅r(shí)候?qū)⑵渥⑨?    return (Upframe.f_code.co_name, Upframe.f_lineno)[0]      #獲取名稱
調(diào)用方法


          

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

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

            
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


          

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 金沙县| 安化县| 大渡口区| 侯马市| 喀什市| 陆良县| 嘉定区| 通山县| 吴忠市| 九江市| 富裕县| 丹阳市| 武城县| 长乐市| 呼伦贝尔市| 两当县| 灌阳县| 吉水县| 承德市| 安康市| 广东省| 江源县| 陆良县| 奇台县| 孟州市| 墨玉县| 菏泽市| 英山县| 台东县| 太谷县| 平顶山市| 新竹市| 酉阳| 申扎县| 赤城县| 大丰市| 林口县| 太仆寺旗| 石狮市| 翁牛特旗| 绥阳县|