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

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

系統 1751 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條評論
主站蜘蛛池模板: 读书| 宁远县| 天长市| 内丘县| 班玛县| 大埔区| 扎兰屯市| 灌云县| 长泰县| 东光县| 定边县| 九江市| 玛纳斯县| 广水市| 大理市| 武宁县| 马尔康县| 永丰县| 嘉祥县| 威海市| 通城县| 浏阳市| 广宁县| 县级市| 宝清县| 阿勒泰市| 家居| 昌吉市| 斗六市| 甘南县| 乌拉特前旗| 东乌| 衡阳市| 芜湖县| 贵溪市| 舟曲县| 巴林左旗| 博罗县| 辽中县| 黄龙县| 慈利县|