[python] 이름이 PDB 명령과 충돌하는 변수를 어떻게 조작합니까?

내 코드는 좋든 나쁘 든 단일 문자 변수 (물리적 요소이므로 해당 문자는 의미가 있음)와 자주 상호 작용하는 NumPy로 가득 차 있습니다.

Python 디버거를 사용할 때 가끔 n. 그러나 내가를 치면 우선 순위가 더 높은에 n<enter>대한 PDB 명령입니다 (n)ext. print n그것을 보면서 작동하지만 어떻게 설정할 수 있습니까?



답변

!명령문 앞에 느낌표를 사용하여 실행하십시오.

python -m pdb test.py
> /home/user/test.py(1)<module>()
-> print('foo')
(Pdb) !n = 77
(Pdb) !n
77
(Pdb) n
foo
> /home/user/test.py(2)<module>()
-> print('bar')
(Pdb)

문서는 말 :

! statement

현재 스택 프레임의 컨텍스트에서 (한 줄) 을 실행합니다 . 문의 첫 단어가 디버거 명령과 유사하지 않으면 느낌표를 생략 할 수 있습니다. […]


답변

세미콜론을 사용할 수 있으므로 그 앞에 다른 것을 넣으십시오.

ipdb> print n
2
ipdb> n
> 145 <some code here>
  146
  147

ipdb> 1; n=4
1
ipdb> print n
4


답변

이것이 귀하의 질문에 대한 직접적인 대답은 아니지만 도움이 될 수 있습니다. PuDB 는 설계에 따라 명령을 변수 조작과 분리하는 PDB 용 콘솔 기반 시각적 인터페이스입니다.


답변

Eric IDE, Wing IDE 및 Spyder는 모두 명령에서 값 표시를 분리 할 수있는 시각적 디버거를 가지고 있습니다.


답변