如何獲取堆棧幀傳入traceback.print_stack
?獲取堆棧幀
traceback.print_stack(f=None, limit=None, file=None)
此功能 版畫從它的調用點的堆棧跟蹤。可以使用可選的
f
參數來指定替代堆棧幀以啓動。 可選限制和文件參數的含義與print_exception()
相同。
但是在文檔中沒有找到實際獲得堆棧幀的方法。具體來說,假設我想打印從調用點上一級開始的堆棧跟蹤。我怎樣才能做到這一點?
如何獲取堆棧幀傳入traceback.print_stack
?獲取堆棧幀
traceback.print_stack(f=None, limit=None, file=None)
此功能 版畫從它的調用點的堆棧跟蹤。可以使用可選的
f
參數來指定替代堆棧幀以啓動。 可選限制和文件參數的含義與print_exception()
相同。
但是在文檔中沒有找到實際獲得堆棧幀的方法。具體來說,假設我想打印從調用點上一級開始的堆棧跟蹤。我怎樣才能做到這一點?
inspect.stack()
會將您當前的堆棧作爲列表。你可以選擇任何你想要的框架。你也可以做例如inspect.currentframe().f_back
以獲取您的來電者的框架。基本上,inspect
模塊就是它所處的位置。
This文檔提供了有關可用於獲取堆棧幀的函數的信息,例如inspect.currentframe()
。
除了檢查模塊,你可以嘗試:
import sys
sys._getframe(1)
或
import sys
sys._getframe().f_back
被警告這是一個私人的功能,蟒蛇的某些版本可能無法實現它。