解讀Python中的frame是什么
Python中的frame是什么
棧幀(frame)
棧幀表示程序運行時函數(shù)調(diào)用棧中的某一幀。想要獲得某個函數(shù)相關(guān)的棧幀,則必須在調(diào)用這個函數(shù)且這個函數(shù)尚未返回時獲取。
可以使用sys模塊的_getframe()函數(shù)、或inspect模塊的currentframe()函數(shù)獲取當前棧幀。
這里列出來的屬性全部是只讀的。
f_back
: 調(diào)用棧的前一幀。f_code
: 棧幀對應(yīng)的code對象。f_locals
: 用在當前棧幀時與內(nèi)建函數(shù)locals()相同,但你可以先獲取其他幀然后使用這個屬性獲取那個幀的locals()。f_globals
: 用在當前棧幀時與內(nèi)建函數(shù)globals()相同,但你可以先獲取其他幀……
示例: 假設(shè)在下面代碼的第四行打斷點
函數(shù)被斷點停止住時刻的frame信息如下
Python的frame對象
Frame對象表示執(zhí)行幀。它們可能出現(xiàn)在traceback對象中。
參考鏈接:
https://docs.python.org/2/reference/datamodel.html#objects-values-and-types
Frame對象可以用來獲取Python運行過程中的函數(shù)調(diào)用堆棧,或者函數(shù)內(nèi)部的各類信息
特殊的只讀屬性
屬性 | 說明 |
---|---|
f_back | 前一個堆棧幀(朝向調(diào)用者),如果這是底部堆棧幀則為None |
f_code | 在這個框架中執(zhí)行的Code對象 |
f_locals | 用于查找局部變量的字典 |
f_globals | 用于全局變量 |
f_builtins | 用于內(nèi)置名稱 |
f_restricted | 表示該函數(shù)是否在限制執(zhí)行模式下執(zhí)行的標志 |
f_lasti | 給出精確的指令(這是代碼對象的字節(jié)碼字符串的索引) |
特殊可寫屬性
f_trace、 f_exc_type、f_exc_value、f_exc_traceback、f_lineno
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
tensorflow建立一個簡單的神經(jīng)網(wǎng)絡(luò)的方法
本篇文章主要介紹了tensorflow建立一個簡單的神經(jīng)網(wǎng)絡(luò)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02python實現(xiàn)xlwt xlrd 指定條件給excel行添加顏色
這篇文章主要介紹了python實現(xiàn)xlwt xlrd 指定條件給excel行添加顏色,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07python django 訪問靜態(tài)文件出現(xiàn)404或500錯誤
這篇文章主要介紹了python django 訪問靜態(tài)文件出現(xiàn)404或500錯誤的相關(guān)資料,需要的朋友可以參考下2017-01-01日常整理python執(zhí)行系統(tǒng)命令的常見方法(全)
本文是小編日常整理的些關(guān)于python執(zhí)行系統(tǒng)命令常見的方法,比較全面,特此通過腳本之家這個平臺把此篇文章分享給大家供大家參考2015-10-10如何使用?Python為你的在線會議創(chuàng)建一個假的攝像頭
這篇文章主要介紹了使用?Python為你的在線會議創(chuàng)建一個假的攝像頭,在?Python?的幫助下,不再強制開啟攝像頭,將向你展示如何為你的在線會議創(chuàng)建一個假的攝像頭,需要的朋友可以參考下2022-08-08在Python下進行UDP網(wǎng)絡(luò)編程的教程
這篇文章主要介紹了在Python下進行UDP網(wǎng)絡(luò)編程的教程,UDP編程是Python網(wǎng)絡(luò)編程部分的基礎(chǔ)知識,示例代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04