[python] 함수를 실행하는 동안 파이썬 인터프리터에 드롭

함수가있는 파이썬 모듈이 있습니다.

def do_stuff(param1 = 'a'):
    if type(param1) == int:
        # enter python interpreter here
        do_something()
    else:
        do_something_else()

주석이있는 명령 줄 인터프리터로 이동하는 방법이 있습니까? 그래서 파이썬에서 다음을 실행하면 :

>>> import my_module
>>> do_stuff(1)

내가 의견이있는 곳의 범위와 맥락에서 다음 메시지를 do_stuff()받습니까?



답변

삽입

import pdb; pdb.set_trace()

그 시점에서 파이썬 디버거에 들어갑니다.

여기를 참조하십시오 :
http://docs.python.org/library/pdb.html


답변

디버거 대신 표준 대화 형 프롬프트를 원하면 다음과 같이 할 수 있습니다.

import code
code.interact(local=locals())

참조 : 코드 모듈 .

IPython이 설치되어 있고 대신 IPython 셸이 필요한 경우 IPython> = 0.11에 대해 다음을 수행 할 수 있습니다.

import IPython; IPython.embed()

또는 이전 버전의 경우 :

from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell(local_ns=locals())


답변

기본 Python 인터프리터를 원하는 경우 다음을 수행 할 수 있습니다.

import code
code.interact(local=dict(globals(), **locals()))

이렇게하면 로컬 및 글로벌 모두에 액세스 할 수 있습니다.

IPython 인터프리터를 사용하려는 경우 IPShellEmbed솔루션은 구식 입니다. 현재 작동하는 것은 다음과 같습니다.

from IPython import embed
embed()


답변