python獲取當前運行函數(shù)名稱的方法實例代碼
python獲取當前運行函數(shù)名稱的方法實例代碼
摘要: c/c++中獲取函數(shù)所在源碼名,函數(shù)名和行號的方法很簡單 __FILE__,__FUNCTION__和__LINE__ python沒有這種語法,但也可以通過某種方法得到,這里給出例子,使用異常信息得到【可能會損失性能】
直接貼代碼[可參考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對象
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信息,即調(diào)用該函數(shù)的函數(shù)frame
#print Upframe.f_code.co_name, Upframe.f_lineno #請在使用的時候將其注釋
return (Upframe.f_code.co_name, Upframe.f_lineno)[0] #獲取名稱
調(diào)用方法
獲取文件名路徑,函數(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
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法
在處理數(shù)據(jù)分析和數(shù)據(jù)科學項目時,經(jīng)常會使用到Python中的pandas庫來進行數(shù)據(jù)操作和分析,其中DataFrame是pandas庫中最重要的數(shù)據(jù)結構之一,這篇文章主要給大家介紹了關于Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法,需要的朋友可以參考下2024-08-08
python安裝和pycharm環(huán)境搭建設置方法
這篇文章主要介紹了python安裝和pycharm環(huán)境搭建和設置方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下 ,2020-05-05
Python3之字節(jié)串bytes與字節(jié)數(shù)組bytearray的使用詳解
今天小編就為大家分享一篇Python3之字節(jié)串bytes與字節(jié)數(shù)組bytearray的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
使用Python的Flask框架實現(xiàn)視頻的流媒體傳輸
這篇文章主要介紹了使用Python的Flask框架實現(xiàn)視頻的流媒體傳輸,包括從攝像機獲取幀到web瀏覽器的數(shù)字流傳輸,需要的朋友可以參考下2015-03-03
基于opencv和pillow實現(xiàn)人臉識別系統(tǒng)(附demo)
人臉識別就是一個程序能識別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實現(xiàn)人臉識別系統(tǒng),本文不涉及分類器、訓練識別器等算法原理,感興趣的可以了解一下2021-11-11
多版本python的pip 升級后, pip2 pip3 與python版本失配解決方法
在本篇文章里小編給大家整理的是關于多版本python的pip 升級后, pip2 pip3 與python版本失配的解決方法內(nèi)容,需要的朋友們學習下。2019-09-09

