Gesamt-Code aufteilen in mehrere kleine Codes

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
j0nas_
User
Beiträge: 8
Registriert: Mittwoch 8. Januar 2020, 13:49

Hallo zusammen,

ich habe nun einen etwas längeren Code in Python geschrieben und bin nun an dem Punkt angekommen, dass ich diesen in "Abschnitte" unterteilen möchte. Ich habe mir dafür gedacht, dass ich dies in der Form "Main-Code.py", "Abschnitt_1.py", ... machen möchte. D. h. ich würde gerne erreichen, dass man "Main-Code.py" ausführt und in diesem festlegt, wann man in "Abschnitt_1.py" springt (diesen dann von Zeile 1 bis zur letzten Zeile durchläuft) und anschließen wieder zurück zu der entsprechenden Zeile in "Main-Code.py" springt. Ich würde dabei gerne die Einträge aus dem Workspace behalten, um mit diesen weiterzurechnen.

Dafür habe ich Befehle, wie "subprocess.Popen('Abschnitt_1.py'), os.system('Abschnitt_1.py'), subprocess.call("Abschnitt_1.py"), ... schon probiert. Dies hat mich jedoch nicht wirklich weiter gebracht. Generell möchte ich nicht nur einzelene definitions von "Abschnitt_1.py" verwenden, sondern möchte wie gesagt diesen von dessen Zeile 1 bis zur letzten Zeile durchlaufen lassen.

Vielen Dank für eure Hinweise und ein schönes Wochenende euch.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

So geht das nicht. Wenn du Code sinnvoll organisieren willst, dann teilt man den in Module auf, und ruft Funktionen oder ggf Klassen aus diesen Modulen auf. Einen Weg, einfach nur per Handkantenschlag eine Datei in mehrere zu zerteilen, und die dann unter Beibehaltung von Zustand zB globaler Variablen etc einfach nacheinander auszufuehren - das gibt es nicht.
Sirius3
User
Beiträge: 18261
Registriert: Sonntag 21. Oktober 2012, 17:20

@j0nas_: Programme strukturiert man in Funktionen. Eine Funktion ist für eine definierte Aufgabe zuständig. Dateien sollten nie von Zeile 1 bis zur letzten Zeile durchlaufen, sondern auf oberster Ebene existieren nur Funktionsdefinitionen, die man, die sich gegenseitig aufrufen. Sollte man mehrere zusammengehörige Funktionen haben, kann man sie einfach in ein Modul auslagern.

Du kannst hier gerne Code zeigen, wenn Du Hilfe brauchst, Dein Programm in Funktionen zu untergliedern.
j0nas_
User
Beiträge: 8
Registriert: Mittwoch 8. Januar 2020, 13:49

Danke schon mal für eure schnellen Antworten.
Ich würde das ganze dann wohl in Klassen und Definition strukturieren. Evtl. würde ich jeweils das Ergebnis eines einzelnes Files in ein .txt Dokument Dokument schreiben und bei Bedarf in einem anderen File wieder einlesen - würde das Sinn machen?

LG Jonas
Sirius3
User
Beiträge: 18261
Registriert: Sonntag 21. Oktober 2012, 17:20

@j0nas_: im Allgemeinen macht das keinen Sinn, weil es keinen Sinn macht, ein Programm in mehrere unabhängige Programme aufzuteilen.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Man kann problemlos Datenstrukturen gefuellt mit Werten durch sein Programm reichen - da braucht man ueblicherweise keine Zwischenspeicherung. Welche genau geeignet sind haengt dann vom Problem ab.
melmager
User
Beiträge: 8
Registriert: Donnerstag 23. Juli 2020, 14:50

Also ich hatte auch das Bedürfniss meinen Code in mehre Textfiles aufzuteilen - aber ich komme ja auch aus der java Ecke und da gehört es zum Sprachstandart jeweils eine Classe in eine Datei zu packen.

OK in Python ist alles anders .. scheinbar ist es bei Python so das man das gesamte Programm in ein File packt.
Ich Werde noch mein "def" Namensgebung aufräumen das zum Namensbestandteil auch das SUB Module ist
so nach dem motto alles was zur Abteilung config gehört startet mit conf_ ....
Und auch mit Kommentarzeilen arbeiten damit alles was irgendwie zusammengehört auch hintereinander im Quelltext ist
Benutzeravatar
__blackjack__
User
Beiträge: 14020
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Nein, das ist in Python dann nicht einfach das andere Extrem. Es gibt ja Packages als Weg um mehrere Module zu strukturieren. Python-Module kann man sich als eine Package-Ebene in Java vorstellen. Wenn man das in Java also in mehr als ein Package stecken würde, wären das in Python dann auch mehrere Module.

”Submodulnamen” als Präfixe in Namen zu packen ist keine gute Idee. Da entstehen dann so komische, teilweise irreführende ”Yoda-Namen” die sich unnatürlich lesen. Also nicht so etwas machen wie `config_load()` und `config_save()`. Das heisst `load_config()` und `save_config()`.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Antworten