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.
Gesamt-Code aufteilen in mehrere kleine Codes
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.
@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.
Du kannst hier gerne Code zeigen, wenn Du Hilfe brauchst, Dein Programm in Funktionen zu untergliedern.
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
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
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
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
- __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()`.
”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.