最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 動態(tài)獲取當(dāng)前運行的類名和函數(shù)名的方法

 更新時間:2014年04月15日 10:50:58   作者:  
這篇文章主要介紹了python 動態(tài)獲取當(dāng)前運行的類名和函數(shù)名的方法,分別介紹使用內(nèi)置方法、sys模塊、修飾器、inspect模塊等方法,需要的朋友可以參考下

一、使用內(nèi)置方法和修飾器方法獲取類名、函數(shù)名

python中獲取函數(shù)名的情況分為內(nèi)部、外部,從外部的情況好獲取,使用指向函數(shù)的對象,然后用__name__屬性

復(fù)制代碼 代碼如下:
def a():pass
a.__name__

除此之外還可以:
復(fù)制代碼 代碼如下:
getattr(a,'__name__')

盡管有些脫褲子放屁,總之,從外部獲取的方法是非常靈活的。

有些同學(xué)需要從函數(shù)內(nèi)部獲取函數(shù)本身的名字,就需要用些技巧了。
1.使用sys模塊的方法:

復(fù)制代碼 代碼如下:

def a():
print sys._getframe().f_code.co_name

f_code和co_name可以參考python源碼解析的pyc生成和命名空間章節(jié)。
2.使用修飾器的方法:
使用修飾器就可以對函數(shù)指向一個變量,然后取變量對象的__name__方法。
復(fù)制代碼 代碼如下:
def timeit(func):
def run(*argv):
   print func.__name__
   if argv:
    ret = func(*argv)
   else:
    ret = func()
   return ret
return run

@timeit
def t(a):
print a
t(1)

二、使用inspect模塊動態(tài)獲取當(dāng)前運行的函數(shù)名


復(fù)制代碼 代碼如下:

import inspect

def get_current_function_name():
    return inspect.stack()[1][3]
class MyClass:
    def function_one(self):
        print "%s.%s invoked"%(self.__class__.__name__, get_current_function_name())
if __name__ == "__main__":
    myclass = MyClass()
    myclass.function_one()


動態(tài)獲取當(dāng)前運行的函數(shù)名很方便,特別是對于一些debug系統(tǒng)來說

相關(guān)文章

  • Python使用try-except捕獲與處理異常的實現(xiàn)方法

    Python使用try-except捕獲與處理異常的實現(xiàn)方法

    在Python中,try-except 語句是用于捕獲和處理異常的主要工具,當(dāng)程序運行過程中發(fā)生錯誤時,try-except 結(jié)構(gòu)可以有效地防止程序崩潰,并允許開發(fā)者為錯誤提供適當(dāng)?shù)慕鉀Q方案,接下來,我們將詳細探討 try-except 的使用方式,需要的朋友可以參考下
    2024-11-11
  • 使用python進行二維碼生成和識別的實現(xiàn)

    使用python進行二維碼生成和識別的實現(xiàn)

    在Python中,生成和識別二維碼可以使用不同的庫來實現(xiàn),最常用的庫包括 qrcode 和 pyzbar,以下是如何使用這些庫來生成和識別二維碼的示例,感興趣的小伙伴可以參考閱讀下
    2024-09-09
  • python?使用enumerate()函數(shù)詳解

    python?使用enumerate()函數(shù)詳解

    enumerate()是python的內(nèi)置函數(shù),將一個可遍歷iterable數(shù)據(jù)對象,組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在for循環(huán)當(dāng)中,這篇文章主要介紹了python?使用enumerate()函數(shù),需要的朋友可以參考下
    2022-11-11
  • PYTHON正則表達式 re模塊使用說明

    PYTHON正則表達式 re模塊使用說明

    正則表達式是一個復(fù)雜的主題。本文能否有助于你理解呢?那些部分是否不清晰,或在這兒沒有找到你所遇到的問題?如果是那樣的話,請將建議發(fā)給作者以便改進
    2011-05-05
  • python模擬鼠標(biāo)拖動操作的方法

    python模擬鼠標(biāo)拖動操作的方法

    這篇文章主要介紹了python模擬鼠標(biāo)拖動操作的方法,實例分析了Python鼠標(biāo)操作及鍵位操作的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 教你使用Python連接oracle

    教你使用Python連接oracle

    今天教各位小伙伴怎么用Python連接oracle,文中附帶非常詳細的圖文示例,對正在學(xué)習(xí)的小伙伴們很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • python 實現(xiàn)人和電腦猜拳的示例代碼

    python 實現(xiàn)人和電腦猜拳的示例代碼

    這篇文章主要介紹了python 實現(xiàn)人和電腦猜拳的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python3.x中安裝web.py步驟方法

    python3.x中安裝web.py步驟方法

    在本篇文章里小編給大家分享的是關(guān)于python3.x中安裝web.py步驟方法,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • 利用Pycharm斷點調(diào)試Python程序的方法

    利用Pycharm斷點調(diào)試Python程序的方法

    今天小編就為大家分享一篇利用Pycharm斷點調(diào)試Python程序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 詳解Python的整數(shù)是如何實現(xiàn)的

    詳解Python的整數(shù)是如何實現(xiàn)的

    本文我們來聊一聊Python的整數(shù),我們知道Python的整數(shù)是不會溢出的,換句話說,它可以計算無窮大的數(shù),只要你的內(nèi)存足夠,它就能計算。但問題是,Python底層又是C實現(xiàn)的,那么它是怎么做到整數(shù)不溢出的呢?本文就來詳細說說
    2022-11-11

最新評論

无棣县| 姚安县| 皋兰县| 张北县| 疏附县| 米泉市| 浑源县| 重庆市| 张家界市| 平泉县| 景德镇市| 怀化市| 汾西县| 无为县| 延长县| 田林县| 台山市| 齐齐哈尔市| 胶南市| 印江| 温州市| 黄陵县| 永和县| 肇州县| 保康县| 德钦县| 峡江县| 丹凤县| 诏安县| 博爱县| 佛山市| 九江县| 佳木斯市| 苏尼特左旗| 玛曲县| 高雄市| 柞水县| 旌德县| 南开区| 若羌县| 佳木斯市|