Python獲取當前函數(shù)名稱方法實例分享
本文實例主要是Python中獲取當前運行函數(shù)的名稱,具體如下。
python 具有強大的自省能力,在函數(shù)運行時,可以在函數(shù)內部獲取到當前所在的函數(shù)名稱,請看示例代碼
#coding=utf-8 import sys import inspect def my_name(): print '1' ,sys._getframe().f_code.co_name print '2' ,inspect.stack()[0][3] def get_current_function_name(): print '5', sys._getframe().f_code.co_name return inspect.stack()[1][3] class MyClass: def function_one(self): print '3',inspect.stack()[0][3] print '4', sys._getframe().f_code.co_name print "6 %s.%s invoked"%(self.__class__.__name__, get_current_function_name()) if __name__ == '__main__': my_name() myclass = MyClass() myclass.function_one()
示例演示了兩種獲取當前所在函數(shù)名稱的方法,一種是用sys內置模塊,一種是使用inspect模塊。運行結果如下:
1 my_name 2 my_name 3 function_one 4 function_one 5 get_current_function_name 6 MyClass.function_one invoked
sys.getframe().f_code.co_name 方法永遠獲取當前所在的函數(shù)名稱,inspect.stack()方法相對更靈活一些,在get_current_function_name函數(shù)中,sys獲取的函數(shù)名稱是get_cu
rrent_function_name,而inspect方法返回的結果是function_one。inspect.stack記錄了當前的棧內信息,想進一步了解可以打印inspect.stack()信息。
我在function_one函數(shù)中調用了get_current_function_name,因此inspect.stack()返回的list中的第一個元組是有關get_current_function_name信息的,
第二個元組才是function_one的相關信息。
總結
以上就是本文關于Python獲取當前函數(shù)名稱方法實例分享的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關文章
在win和Linux系統(tǒng)中python命令行運行的不同
本文給大家分享的是作者在在win和Linux系統(tǒng)中python命令行運行的不同的解決方法,有相同需求的小伙伴可以參考下2016-07-07django 自定義filter 判斷if var in list的例子
今天小編就為大家分享一篇django 自定義filter 判斷if var in list的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python 操作mysql數(shù)據(jù)庫查詢之fetchone(), fetchmany(), fetchall()用法示例
這篇文章主要介紹了Python 操作mysql數(shù)據(jù)庫查詢之fetchone(), fetchmany(), fetchall()用法,結合實例形式分析了Python使用pymysql模塊的fetchone(), fetchmany(), fetchall()方法進行mysql數(shù)據(jù)庫查詢的操作技巧,需要的朋友可以參考下2019-10-10python爬蟲學習筆記--BeautifulSoup4庫的使用詳解
這篇文章主要介紹了Python中使用Beautiful Soup庫的超詳細教程,示例代碼基于Python2.x版本,極力推薦!需要的朋友可以參考下2021-08-08windows下Python實現(xiàn)將pdf文件轉化為png格式圖片的方法
這篇文章主要介紹了windows下Python實現(xiàn)將pdf文件轉化為png格式圖片的方法,結合實例形式較為詳細的分析了Python實現(xiàn)將pdf轉換為png格式的相關模塊、使用方法與相關注意事項,需要的朋友可以參考下2017-07-07Appium Python自動化測試之環(huán)境搭建的步驟
這篇文章主要介紹了Appium Python自動化測試之環(huán)境搭建的步驟,以32位的Windows 7操作系統(tǒng)為例介紹Appium+Python的環(huán)境搭建步驟,感興趣的小伙伴們可以參考一下2019-01-01使用Python和XPath解析動態(tài)JSON數(shù)據(jù)的操作指南
JSON動態(tài)數(shù)據(jù)在Python中扮演著重要的角色,為開發(fā)者提供了處理實時和靈活數(shù)據(jù)的能力,動態(tài)JSON數(shù)據(jù)的獲取可能涉及到網絡請求和API調用,可以使用Python和XPath來解析動態(tài)JSON數(shù)據(jù),接下來小編就給大家介紹一下操作步驟2023-09-09