python獲取當(dāng)前運(yùn)行函數(shù)名稱的方法實(shí)例代碼
python獲取當(dāng)前運(yùn)行函數(shù)名稱的方法實(shí)例代碼
摘要: c/c++中獲取函數(shù)所在源碼名,函數(shù)名和行號(hào)的方法很簡(jiǎn)單 __FILE__,__FUNCTION__和__LINE__ python沒有這種語(yǔ)法,但也可以通過某種方法得到,這里給出例子,使用異常信息得到【可能會(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 #請(qǐng)?jiān)谑褂玫臅r(shí)候?qū)⑵渥⑨? Upframe = frameObj.f_back #獲取該代碼段的frame信息,即調(diào)用該函數(shù)的函數(shù)frame #print Upframe.f_code.co_name, Upframe.f_lineno #請(qǐng)?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)
#測(cè)試代碼 def test1(): print getCurRunPosInfo() def test2(): print get_func_name() 輸出: >>('demo.py', 'test1', 44) >>test2
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法
在處理數(shù)據(jù)分析和數(shù)據(jù)科學(xué)項(xiàng)目時(shí),經(jīng)常會(huì)使用到Python中的pandas庫(kù)來(lái)進(jìn)行數(shù)據(jù)操作和分析,其中DataFrame是pandas庫(kù)中最重要的數(shù)據(jù)結(jié)構(gòu)之一,這篇文章主要給大家介紹了關(guān)于Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法,需要的朋友可以參考下2024-08-08pytorch加載預(yù)訓(xùn)練模型與自己模型不匹配的解決方案
這篇文章主要介紹了pytorch加載預(yù)訓(xùn)練模型與自己模型不匹配的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05python安裝和pycharm環(huán)境搭建設(shè)置方法
這篇文章主要介紹了python安裝和pycharm環(huán)境搭建和設(shè)置方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 ,2020-05-05Python3之字節(jié)串bytes與字節(jié)數(shù)組bytearray的使用詳解
今天小編就為大家分享一篇Python3之字節(jié)串bytes與字節(jié)數(shù)組bytearray的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-08-08使用Python的Flask框架實(shí)現(xiàn)視頻的流媒體傳輸
這篇文章主要介紹了使用Python的Flask框架實(shí)現(xiàn)視頻的流媒體傳輸,包括從攝像機(jī)獲取幀到web瀏覽器的數(shù)字流傳輸,需要的朋友可以參考下2015-03-03基于opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng)(附demo)
人臉識(shí)別就是一個(gè)程序能識(shí)別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng),本文不涉及分類器、訓(xùn)練識(shí)別器等算法原理,感興趣的可以了解一下2021-11-11多版本python的pip 升級(jí)后, pip2 pip3 與python版本失配解決方法
在本篇文章里小編給大家整理的是關(guān)于多版本python的pip 升級(jí)后, pip2 pip3 與python版本失配的解決方法內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-09-09