2012-03-30 3 views
3

스택 프레임을 traceback.print_stack으로 전달하려면 어떻게해야합니까? Python 3.3a1 docs에서스택 프레임 가져 오기

:

traceback.print_stack(f=None, limit=None, file=None)

이 기능을 인쇄의 호출 지점에서 스택 추적. 선택적 f 인수를 사용하여 스택 프레임을 시작할 수 있습니다. 선택적 제한 및 파일 인수는 print_exception()의 경우와 동일한 의미입니다.

그러나 아무 데서도 실제로 스택 프레임을 얻는 방법을 찾지 못했습니다. 구체적으로 말하자면, 호출 점의 한 수준에서 시작하여 스택 추적을 인쇄하려고한다고 가정 해 봅시다. 어떻게해야합니까?

답변

2

inspect.stack()은 현재 스택을 목록으로 가져옵니다. 원하는 모든 프레임을 선택할 수 있습니다. 예를 들면 다음과 같이 할 수도 있습니다. inspect.currentframe().f_back을 눌러 발신자의 프레임을 가져 오십시오. 기본적으로 모듈은 inspect입니다.

2

This 설명서에는 스택 프레임을 가져 오는 데 사용할 수있는 기능에 대한 정보가 나와 있습니다 (예 : inspect.currentframe()).

1

모듈을 검사 할뿐만 아니라, 당신은 시도 할 수 있습니다 :

import sys 
sys._getframe(1) 

또는

import sys 
sys._getframe().f_back 

파이썬의 일부 버전은 그것을 구현하지 않을 수 있습니다, 그것은 개인 기능입니다 경고합니다.

관련 문제