国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python獲取當(dāng)前函數(shù)名稱方法實(shí)例分享

2020-02-22 22:54:01
字體:
供稿:網(wǎng)友

本文實(shí)例主要是Python中獲取當(dāng)前運(yùn)行函數(shù)的名稱,具體如下。

python 具有強(qiáng)大的自省能力,在函數(shù)運(yùn)行時(shí),可以在函數(shù)內(nèi)部獲取到當(dāng)前所在的函數(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() 

示例演示了兩種獲取當(dāng)前所在函數(shù)名稱的方法,一種是用sys內(nèi)置模塊,一種是使用inspect模塊。運(yùn)行結(jié)果如下:

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 方法永遠(yuǎn)獲取當(dāng)前所在的函數(shù)名稱,inspect.stack()方法相對更靈活一些,在get_current_function_name函數(shù)中,sys獲取的函數(shù)名稱是get_cu
rrent_function_name,而inspect方法返回的結(jié)果是function_one。inspect.stack記錄了當(dāng)前的棧內(nèi)信息,想進(jìn)一步了解可以打印inspect.stack()信息。

我在function_one函數(shù)中調(diào)用了get_current_function_name,因此inspect.stack()返回的list中的第一個(gè)元組是有關(guān)get_current_function_name信息的,

第二個(gè)元組才是function_one的相關(guān)信息。

總結(jié)

以上就是本文關(guān)于Python獲取當(dāng)前函數(shù)名稱方法實(shí)例分享的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永和县| 汶上县| 马鞍山市| 淮滨县| 南城县| 阳朔县| 平山县| 闵行区| 禹城市| 平顺县| 昭觉县| 长宁县| 雅江县| 台山市| 湟源县| 玉门市| 大名县| 中牟县| 灯塔市| 文水县| 莱州市| 平顺县| 五大连池市| 马鞍山市| 自治县| 怀宁县| 册亨县| 玉溪市| 旬邑县| 平潭县| 沅陵县| 禹州市| 缙云县| 诸暨市| 洛隆县| 于都县| 桂东县| 子洲县| 腾冲县| 台北县| 子洲县|