Welche Möglichkeiten gibt es, um Klassenbeziehungen in einem Python-Programm zu visualisieren?

8

Ich führe ein Python-Programm und versuche, die Beziehungen zwischen den verschiedenen Klassen zu verstehen. Ich denke, es wäre hilfreich, ein Diagramm zu sehen, wie die Klassen interagieren.

Welche Möglichkeiten gibt es, die mir erlauben, dies zu tun?

    
David Sykes 04.06.2010, 07:22
quelle

6 Antworten

2

Nur meine 2 Cent.

Fall-Tools wie Enterprise Architect kann Klassendiagramme aus Python-Code generieren, aber zum Verständnis bevorzuge ich es, die Klassen und Beziehungen grob von Hand zu modellieren.

Ich benutze auch UML, wenn ich neuen Code verstehen, einen groben Überblick über die Kollaborationen zwischen Klassen bekommen und einen Überblick über Erbhirachien bekommen möchte.

Die meisten IDEs haben Mittel, um den Code zu erforschen, aber ich finde kleine kohäsive UML-Diagramme leichter zu verdauen und zu merken.

Ich finde auch, dass Domänenmodelle in einem Klassendiagramm leichter zu verstehen sind.

    
chickeninabiscuit 04.06.2010, 07:39
quelle
1

Wenn Sie IDEs mit dieser Funktion suchen, dann:

  1. Komodo
  2. Pydev für die Finsternis
Amirshk 04.06.2010 07:39
quelle
1

gaphor hat eine Funktion, um Python-Module zu importieren und uml-Klassendiagramme zu generieren, trotzdem ist es nicht so gut.

Wie auch immer, Code-Analyse-Tools auf Python funktionieren nicht sehr gut, da niemand "vorhersagen" kann, welche Argumente von Funktionen übergeben (oder zurückgegeben) werden und so weiter. Die meisten von ihnen "erraten" den Typ bestanden.

In der Hoffnung, dass Python 3 mit der "function annotation" diese Art von "Problem" lösen kann

    
pygabriel 04.06.2010 09:08
quelle
1

Gute Frage! Abhängig davon, wie praktisch Sie sind, können Sie das Trace-Modul bei der Ausführung Ihres Codes verwenden.

%Vor%

Gibt Ihnen wer-gerufen-wer-Informationen. Sie können dies entweder analysieren oder einen Code schreiben, der die Ablaufverfolgung programmatisch verwendet, um Ihr Aufrufdiagramm zu extrahieren.

Sobald das erledigt ist, hackt ein bisschen dot und du hast ein Diagramm. Sobald Sie dies getan haben, würde es einen coolen Blog-Post darüber machen, was Sie getan haben und wie es geklappt hat.

    
user97370 04.06.2010 09:10
quelle
1

Schau dir epydoc an. Es wird allgemein als Dokumentationsgenerator betrachtet, aber sehen Sie sich das (automatisch generierte) Diagramm in diesem Beispiel an:

Ссылка

    
EnigmaCurry 04.06.2010 18:26
quelle
0

Wenn es Django ist, kannst du es auch tun

%Vor%

wenn Sie Django Command Extensions verwenden

    
Adam Nelson 04.06.2010 20:11
quelle

Tags und Links