2012-10-24 3 views
6

파이썬 소스 코드를 조사하고 추적하여 명확하게 문서화되지 않은 기능에 대한 의구심을 해소하고 싶습니다. 참조 문서에.소스 코드를 통해 파이썬 기능 및 동작을 추적하기 시작하려고 시도했습니다.

꽤 압도적이기 때문에이 문제를 해결하는 방법에 대한 시작 정보를 갖고 싶습니다. 나는 C를 읽을 수있다. 그래서 나는 그것을 계속하고있다. 그 외에도 최소한 약간의 지침이 없으면 작업은 다소 위협적으로 보입니다.

예를 들어, 속성 참조가 파이썬에서 구현되는 방법을 설명하고자한다고 가정 해 봅시다. 파이썬 프로그램에 속성 참조 표현식이 존재할 때 어떤 일이 일어나는지 추적하는 방법은 무엇입니까?

아마도 "속성 참조"사례와 같이 일부 "walk = thru"예제와 함께 소스 코드가 어떻게 구성되고 각 부분이 도움이되는지에 대한 개요가있을 것입니다.

이에 대한 정보를 검색했지만 많이 보이지 않습니다.

답변

1

아마 좋은 파이썬 디버거가 도움이 될까요? PyDev plugin for Eclipse을 사용해 보겠습니다. 그것은 최소한 특수 속성 (예 : __getattr__() 또는 __setattr__())이 클래스의 속성을 참조 할 때 호출되는 것을 추적하는 데 도움이됩니다. 더 깊이 들어가야 할 경우 Python C API 또는 Python C Source Code을 볼 수 있습니다.

+0

영업 이익은 파이썬 C 소스에 대한 소개에 대해 요구하고있다하세요! – XORcist

+0

감사합니다. 디버거를 사용할 생각이 없었습니다. 이 가능성을 살펴볼 것입니다 (현재 Eclipse를 사용하지는 않지만). C API와 소스 코드는 분명 이상적입니다. (그게 뭐니?) –

+2

[GDB with Python] (http://wiki.python.org/moin)을 사용하여 C 소스 레벨에서 디버깅 할 수있는 것처럼 보입니다./DebuggingWithGdb) – Josh

1

파이썬 표준 라이브러리에 추적 모듈이 있습니다. 그것은 여러 모드를 가지고 있으며,이 같이 실행될 때 파이썬 코드의 모든 라인을 인쇄하는 데 사용할 수 있습니다

python -m trace -t myscript.py 

http://docs.python.org/library/trace.html

+0

이것은 우수합니다, 감사합니다. 지금 당장이 정보를 살펴보고 수집 할 수있는 정보를 확인하겠습니다. 강박적인 강박 관념은 결국 코드를 ​​파헤칠 수있는 방법을 알고 싶어합니다. 실용적인 노력이 될 것인지 확신 할 수는 없지만 재미 만 있다면 그렇게 할 수 있습니다. –

+0

시도해보십시오. 확실히 유용하지만 필요한 수준의 세부 정보가 있는지 확신 할 수 없습니다. 예를 들어 파이썬 특수 메소드 호출을 얻지 못한다. (객체를 인스턴스화 할 때와 같이). 아마 당장은 볼 수 없지만 트레이스에서 설정할 수있는 옵션이있을 수있다. 내가 한번 볼게. –

관련 문제