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

首頁 > 編程 > Python > 正文

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

2020-02-23 05:18:20
字體:
供稿:網(wǎng)友

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

python中獲取函數(shù)名的情況分為內(nèi)部、外部,從外部的情況好獲取,使用指向函數(shù)的對(duì)象,然后用__name__屬性
代碼如下:def a():pass
a.__name__
除此之外還可以:
代碼如下:getattr(a,'__name__')
盡管有些脫褲子放屁,總之,從外部獲取的方法是非常靈活的。

有些同學(xué)需要從函數(shù)內(nèi)部獲取函數(shù)本身的名字,就需要用些技巧了。
1.使用sys模塊的方法:
代碼如下:
def a():
print sys._getframe().f_code.co_name
f_code和co_name可以參考python源碼解析的pyc生成和命名空間章節(jié)。
2.使用修飾器的方法:
使用修飾器就可以對(duì)函數(shù)指向一個(gè)變量,然后取變量對(duì)象的__name__方法。
代碼如下: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模塊動(dòng)態(tài)獲取當(dāng)前運(yùn)行的函數(shù)名


代碼如下:
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()
動(dòng)態(tài)獲取當(dāng)前運(yùn)行的函數(shù)名很方便,特別是對(duì)于一些debug系統(tǒng)來說

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高邮市| 文成县| 保靖县| 女性| 桑植县| 靖西县| 方正县| 承德县| 南开区| 大安市| 依兰县| 临沭县| 那曲县| 横峰县| 旬阳县| 邵阳县| 曲靖市| 西乌珠穆沁旗| 勐海县| 萨嘎县| 谢通门县| 大足县| 遂平县| 宝清县| 绍兴县| 永清县| 兴国县| 恭城| 平湖市| 大足县| 东港市| 新竹县| 建德市| 隆昌县| 酉阳| 上林县| 西乡县| 凤山市| 汉源县| 唐海县| 隆子县|