2009-04-16 6 views
1

Ein gutes Beispiel hierfür ist: http://github.com/tav/tweetapp/blob/a711404f2935c3689457c61e073105c1756b62af/app/root.pyWie können Sie debuggen/auseinandergehen/von einem anderen Python-Code (webbasiert) lernen?

In Visual Studio (ASP.net C#), wo ich herkomme, werden die Klassen in der Regel aufgeteilt in separate Dateien + I Bruchstellen festlegen kann die Code-Ebene zu verstehen.

Wenn ich ein Programm wie dieses ausführe, mache ich einfach "system.out", um auszudrucken, wo im Code ich bin?

Ich lese durch diese https://stackoverflow.com/questions/246546/good-techniques-for-understanding-someone-elses-code, die sehr hilfreich war.

Antwort

3

Sie sind in einen ziemlich speziellen Fall von Code geraten, der schwer zu verstehen sein wird. Sie taten das wahrscheinlich, um den ganzen Code in einer Datei zu haben.

Ich würde empfehlen, Epydoc einen Pass haben. Es wird eine HTML-Dokumentation des Programms erstellt. Dies zeigt Ihnen die Klassenstruktur und Sie können sogar Diagramme erstellen, welche Funktionen welche anderen Funktionen aufrufen.

http://epydoc.sourceforge.net/manual-usage.html

Ihre anderen Optionen sind es in mehrere Dateien zu brechen selbst (was meiner Meinung nach sehr mühsam sein wird und nicht viel Nutzen)

+1

+1: epydoc macht einen schönen Job - WENN der Import nichts zu faules macht. Manchmal müssen Sie ein if __name__ == "__main__" hinzufügen, um zu verhindern, dass der Import gestartet und ausgeführt wird. –

0

Wenn Sie Eclipse installieren und PyDev Sie Haltepunkte in der gleichen einstellen wie du es im Visual Studio kannst.

Andernfalls ist das Ausdrucken von Informationen an bestimmten Punkten oft ein guter Weg, um zu sehen, was vor sich geht. Ich füge ziemlich oft Debug-Informationen hinzu und lasse sie im Code, aber deaktiviert, bis ich eine Variable ändere. Ich finde, das hilft oft, wenn du den Code durchbrichst und zurück gehen musst, um einen anderen Blick darauf zu werfen, was vor sich geht. Besser noch, senden Sie Ihre Debug-Informationen an eine Protokollierungsklasse und Sie können beginnen, die Ausgabe in Unit-Tests zu verwenden ... Sie testen Ihren Code richtig? ;)

Verwandte Themen