Python Inspect Module小結(jié)

python的inspect模塊正如他們的命名一樣咱士,是用于檢查運行模塊的一些基本信息敢会,有了inspect模塊蔑穴,我們可以做很多有意思的事情,下面主要想探究一下inspect模塊

inspect.getmembers


def getmembers(object, predicate=None):
"""Return all members of an object as (name, value) pairs sorted by name.
Optionally, only return members that satisfy a given predicate."""
results = []
# 使用dir(builtin)獲取所有的attr-key
for key in dir(object):
    try:
        value = getattr(object, key)
    except AttributeError:
        continue
    # 如果有預(yù)測函數(shù)則進行預(yù)測
    if not predicate or predicate(value):
        results.append((key, value))
results.sort()
return results

getmembers方法的實現(xiàn)非常簡單迷扇,其內(nèi)部的實現(xiàn)就是用內(nèi)建函數(shù)dir實現(xiàn)的百揭。

inspect.currentframe


currentframe內(nèi)部實現(xiàn)是通過sys._getframe實現(xiàn)的。在使用currentframe的時候要注意防止循環(huán)引用蜓席。

def handle_stackframe_without_leak():
    frame = inspect.currentframe()
try:
    # do something with the frame
finally:
    del frame

inspect的使用


1. 獲取調(diào)用函數(shù)的實例

# file: util.py
def get_caller():
    import inspect
    try:
        frame = inspect.currentframe()
        call_frame = frame.f_back.f_back
        call_frame_name = call_frame.f_code.co_varnames[0]
        call_frame_self = call_frame.f_locals.get(call_frame_name, None)
    except:
        call_frame_self = None
    finally:
        del frame
    return call_frame_self
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末器一,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子厨内,更是在濱河造成了極大的恐慌祈秕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雏胃,死亡現(xiàn)場離奇詭異请毛,居然都是意外死亡,警方通過查閱死者的電腦和手機瞭亮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門方仿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人统翩,你說我怎么就攤上這事仙蚜。” “怎么了厂汗?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵委粉,是天一觀的道長。 經(jīng)常有香客問我娶桦,道長贾节,這世上最難降的妖魔是什么汁汗? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮栗涂,結(jié)果婚禮上知牌,老公的妹妹穿的比我還像新娘。我一直安慰自己戴差,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布铛嘱。 她就那樣靜靜地躺著暖释,像睡著了一般。 火紅的嫁衣襯著肌膚如雪墨吓。 梳的紋絲不亂的頭發(fā)上球匕,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音帖烘,去河邊找鬼亮曹。 笑死,一個胖子當(dāng)著我的面吹牛秘症,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼藕咏,長吁一口氣:“原來是場噩夢啊……” “哼缩赛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起聪廉,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瞬痘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后板熊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體框全,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年干签,在試婚紗的時候發(fā)現(xiàn)自己被綠了津辩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡容劳,死狀恐怖丹泉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸭蛙,我是刑警寧澤摹恨,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站娶视,受9級特大地震影響晒哄,放射性物質(zhì)發(fā)生泄漏睁宰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一寝凌、第九天 我趴在偏房一處隱蔽的房頂上張望柒傻。 院中可真熱鬧,春花似錦较木、人聲如沸红符。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽预侯。三九已至,卻和暖如春峰锁,著一層夾襖步出監(jiān)牢的瞬間萎馅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工虹蒋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留糜芳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓魄衅,卻偏偏與公主長得像峭竣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晃虫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • pypy支持的擴展模塊(對應(yīng)Python/Modules/中的模塊) pypy支持的內(nèi)建模塊:__builtin_...
    JianMing閱讀 4,794評論 0 0
  • 個人筆記邪驮,方便自己查閱使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik閱讀 67,711評論 0 5
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,579評論 1 118
  • 兩本不錯的書: 《Python參考手冊》:對Python各個標(biāo)準(zhǔn)模塊,特性介紹的比較詳細(xì)傲茄。 《Python核心編程...
    靜熙老師哈哈哈閱讀 3,360評論 0 80
  • 給自己: 首先抱抱自己毅访。 最近幾天你免不了的焦慮、發(fā)脾氣盘榨、自責(zé)和糾結(jié)喻粹,其實暴露了你急于想改變的心態(tài)。這些都是正常的...
    日出東方天剛曉閱讀 247評論 0 1