goto modul?
Nicht, dass das schlecht wäre, denn was du bisher so über deinen Code verraten hast, war diese wohl gelinde gesagt einfach mies.
Naja, dann löst man es allgemein eben mit einer Exception (zumindest man möchte wirklich miesen Code erzeugen ):BlackJack hat geschrieben:Es funktioniert nicht so einfach wenn man aus einer inneren Schleife an den Anfang springen möchte.
Code: Alles auswählen
while 1:
try:
<code>
if foo:
raise ContinueException()
<code>
irgendwann:
break
except ContinueException:
pass
Naja, hin und wieder kann goto praktisch sein, dass viele Leute es absolut verteufeln, halte ich fuer einen Fehler. Aber stimmt schon, meistens weist es auf schlechte Codestruktur hin.
Wusstet ihr, dass beim simplen Starten eines Python-Interpreters mehrere tausend mal goto ausgefuehrt wird?
Wusstet ihr, dass beim simplen Starten eines Python-Interpreters mehrere tausend mal goto ausgefuehrt wird?
Es gibt aber einen kleinen Unterschied zwischen C und Python ...mq hat geschrieben:Wusstet ihr, dass beim simplen Starten eines Python-Interpreters mehrere tausend mal goto ausgefuehrt wird?
Im Übrigen hoffe ich nicht, daß goto bei mir tatsächlich tausende Male beim Start aufgerufen wird - wird nämlich meist zum Errorhandling eingesetzt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich nicht. Mir fehlt es in Python nicht, dir etwa? Das ist ähnlich wie das `global` Keyword: man braucht es nicht, und da es da ist muss man Leuten die Benutzung dessen oft ausreden, weil sie es einfach bedenkenlos nutzen.mq hat geschrieben:Naja, hin und wieder kann goto praktisch sein, dass viele Leute es absolut verteufeln, halte ich fuer einen Fehler.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ne, wusste ich noch nicht. Mir ist beim portieren des CPython-Interpreters zumindest nichts deartiges aufgefallen. Würde gerne die Sourcen dazu sehen. Kann mir das irgendwie nur schwer vorstellen, da auch in C Goto zurecht sehr verpöhnt ist. Oder meinst du die vielen defines in den C-Sourcen?! Das ist kein Goto...mq hat geschrieben:Wusstet ihr, dass beim simplen Starten eines Python-Interpreters mehrere tausend mal goto ausgefuehrt wird?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Vielleicht sind ja die Assembler-Sprunganweisungen gemeint. Aber ich finde nicht dass das zählt, denn der Interpreter ist nicht in Assembler geschrieben und welchen Code der Compiler letztendlich erzeugt ist vollständig egal.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Nein es sind schon ``goto``\s gemeint. Die werden bei CPython oft benutzt um in Fehlerfällen ans Ende zu einer Fehlerbehandlung zu springen um die Verschachtelungstiefe geringer zu halten.
Der (gute) Einsatzzweck von ``goto`` ist da also der gleiche wie Ausnahmebehandung in höheren Sprachen. Das ist ja auch ein unbedingter Sprung aus der verschachtelten Kontrollfluss-Struktur heraus.
Der (gute) Einsatzzweck von ``goto`` ist da also der gleiche wie Ausnahmebehandung in höheren Sprachen. Das ist ja auch ein unbedingter Sprung aus der verschachtelten Kontrollfluss-Struktur heraus.
Womit es dann aber in jeder sprache, die (subjektiv) höher als c++ angesiedelt ist, keine Rechtfertigung für ein goto sein kann, dank Exceptions.Der (gute) Einsatzzweck von ``goto`` ist da also der gleiche wie Ausnahmebehandung in höheren Sprachen.
Also eher: es gibt in c gute Gründe für goto, nicht, es gibt gute Gründe für goto.
Achja, noch cooler wäre ja ein comefrom
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Mag jemand Exceptions für C haben?keppla hat geschrieben:Also eher: es gibt in c gute Gründe für goto, nicht, es gibt gute Gründe für goto.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice