산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

Python 디버거:손쉬운 디버그 기술 향상

우리 중 많은 사람들에게 Python 코드 디버깅은 인쇄 문을 추가하고 출력을 기반으로 무슨 일이 일어나는지 추론하는 것으로 귀결됩니다. 이상적이지는 않지만 어떤 이유로 사람들은 Python 디버거를 만지고 싶어하지 않습니다.

목차

<내비>

인쇄를 사용하여 코드 디버그

print을(를) 사용하는 사람 중 하나라면 디버깅을 위해 나는 당신을 판단하지 않습니다 . 파이썬을 배우는 것은 어렵습니다. 프로그래밍은 어렵다. 인생은 힘들다. 이미 어려움을 겪고 있다면 또 다른 것을 배우는 것이 지겹다는 것을 이해합니다. 그리고 그 print 문을 코드에 추가하는 것은… 더 쉽습니다. 작은 고백:지금도 항상 하고 있습니다. 일부 사람들이 생각하는 것만큼 나쁘지 않습니다.

그런 다음, 코드에 인쇄 문을 추가하는 것만큼 쉬운 약간의 트릭을 가르쳐 드리겠습니다. 그러나 이 트릭은 무한한 디버깅 능력을 제공하며 필요한 경우 세계를 정복할 수 있게 해줍니다.

Python 디버거 중단점 설정

코드를 올바르게 디버그하기 위해 IDE가 필요하지 않습니다. 이 트릭은 가장 단순한 편집기와 Jupyter Notebook에서도 항상 작동합니다.

트릭은 다음과 같습니다. breakpoint() 명령을 사용하여 소위 중단점을 설정합니다. . 사용 중인 편집기나 IDE에 관계없이 일반적으로 성가신 인쇄 문을 삽입하는 지점에 코드에 삽입할 수 있습니다.

그렇게 하면 어떻게 됩니까? 알아 보자! 아래와 같은 간단한 프로그램을 만드십시오.

def add_two(x):
    return x + 2
for i in range(1, 10):
    a = add_two(i)
    breakpoint()
    print(a)

이것을 실행하면 REPL에서 실행하든, 명령줄에서 실행하든, IDE에서 실행하든 상관없이 PDB라는 Python 디버거에 빠지게 됩니다. 하지만 지금은?

Python 디버거 사용

위의 작은 프로그램을 시작하면 다음과 같이 됩니다.

$ python3 breakpointing.py
> /home/erik/breakpointing.py(7)<module>()
-> print(a)
(Pdb)_

여기에서 볼 수 있는 몇 가지 사항이 있습니다.

Python 디버거는 REPL과 마찬가지로 실제로 완벽하게 작동하는 Python 셸입니다.

이 시점에서 현재 환경을 확인할 수 있습니다. a의 값을 봅시다. 지금입니다:

(Pdb) print(a)
3
(Pdb) print(i)
1

인쇄 대신 다음과 같이 pdb 특정 명령 p를 사용할 수도 있습니다.

(Pdb) p a
3
(Pdb_ p i
1

다음 줄 실행

그렇다면 다음 코드 줄을 실행하려면 어떻게 해야 할까요? 두 가지 옵션이 있습니다.

더 명확하게 하려면 step 행복하게 함수 호출을 입력하고 해당 함수 내부에서 휴식을 취합니다. 대조적으로, next 반환될 때까지 함수를 실행하고 다음 줄에서 중단됩니다.

다른 디버거와 IDE에서도 이것을 'step into'(step 대신) 및 'step over'(next 대신)라고 부릅니다.

이제 다음 두 가지를 사용해 보겠습니다.

$ python3 breakpointing.py
-> print(a)
(Pdb) s
3
-> for i in range(1, 10):
(Pdb) s
-> a = add_two(i)
(Pdb) n
-> breakpoint()
(Pdb) n
-> print(a)
(Pdb) n
4
-> for i in range(1, 10):
(Pdb) s
-> a = add_two(i)
(Pdb) s
--Call--
-> def add_two(x):
(Pdb) s
-> return x + 2
(Pdb) s
--Return--
5
-> return x + 2
(Pdb) s
-> breakpoint()
(Pdb)

보시다시피 add_two에 대한 호출을 먼저 처리합니다. n 사용 . 두 번째로 s를 사용하여 함수를 시작합니다. .

Python 디버거 명령

직접 시도할 수 있는 더 많은 명령이 있습니다. 모두 나열하지 않고 가장 유용한 것만 나열하겠습니다.

전체 문서를 보려면 모든 명령이 나열된 Python 디버거 페이지로 이동하십시오.

계속 학습

이것은 매우 편리할 수 있지만 IDE가 제공하는 디버거에 뛰어드는 것이 좋습니다. VSCode 사용자라면 VSCode에서 Python 코드를 디버그하는 방법에 대한 자습서를 작성했습니다.


python

  1. 파이썬 입력, 출력 및 가져오기
  2. Python Print() 문:예제로 인쇄하는 방법
  3. Python 문자열:바꾸기, 결합, 분할, 반전, 대문자 및 소문자
  4. Python time.sleep():코드에 지연 추가(예제)
  5. Python 줄 바꿈:Python에서 줄 바꿈 없이 인쇄하는 방법
  6. 커넥티드 플릿으로 수익 개선
  7. 프로토타입이 제조 프로세스를 개선하는 방법
  8. 판금 부품을 개선하는 5가지 방법
  9. 장비 유지 관리 계획을 개선하기 위한 3가지 팁
  10. 팁 및 고려 사항:PCB 설계 기술 향상 방법 배우기