을 사용하여 루프를 건너 뛰려면 어떻게 pdb.set_trace()
해야합니까?
예를 들면
pdb.set_trace()
for i in range(5):
print(i)
print('Done!')
pdb
루프 전에 프롬프트합니다. 명령을 입력했습니다. 모든 1-5 값이 반환되고 실행 pdb
되기 전에 다시 메시지를 받고 싶습니다 print('Done!')
.
답변:
until
진술을 시도하십시오 .
루프의 마지막 줄 ( next
또는 사용 n
)로 이동 한 다음 until
또는 을 사용 unt
합니다. 루프 바로 뒤의 다음 줄로 이동합니다.
http://www.doughellmann.com/PyMOTW/pdb/ 에 좋은 설명이 있습니다.
f
하는 R의 debug
함수 ( adv-r.hadley.nz/debugging.html ) 에서 사용하는 것과 동일한 것이 없습니까?
until
(또는 약식 unt
당신은 또한 단지 대신 그것을 시간의 무리를 사용할 수 있도록 (return 문에 충돌하지 않는 한) 항상 줄 아래로 이동합니다 인수없이) n
.
breakpoint()
에서 루프의 세트에서는 작동하지 않습니다 python 3
. 는 VB Editor
'즉시'중단 점을 수락 할 수 있지만 pdb
.
허용 된 답변 ( https://pymotw.com/3/pdb/ )에서 언급 한 링크 에서이 섹션이 다소 도움이된다는 것을 알았습니다.
특정 행까지 실행되도록하려면 행 번호를 until 명령에 전달하십시오.
다음은 re : 루프가 작동하는 방법의 예입니다.
추가 중단 점을 생성해야하고 루프의 끝으로 이동해야하는 두 가지 작업에서 벗어날 수 있습니다 (특히 디버거를 다시 실행하지 않고는 할 수 없을 정도로 이미 반복했을 때).
.NET에 대한 Python 문서는 다음과 같습니다 until
. Btw pdb++
표준 디버거 (따라서 형식화)의 드롭 인으로 사용 하고 있지만 until
둘 다에서 동일하게 작동합니다.
내가 이것을 올바르게 이해했다면.
이를 수행하는 한 가지 가능한 방법은 다음과 같습니다.
당신이 당신을 얻으면 pdb
프롬프트를 . 그냥 히트 n
루프를 종료 (다음) 10 회.
그러나 나는 루프를 종료하는 방법을 모릅니다. pdb
.
r
그래도 기능을 종료하는 데 사용할 수 있습니다 .
n
한 다음을 입력until
합니다. 이것은 적어도 현재 라인이 초과 될 때까지 진행됩니다.