goto modul?

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.
lunar

Sonntag 4. November 2007, 15:28

Nicht, dass das schlecht wäre, denn was du bisher so über deinen Code verraten hast, war diese wohl gelinde gesagt einfach mies.
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Montag 5. November 2007, 12:33

BlackJack hat geschrieben:Es funktioniert nicht so einfach wenn man aus einer inneren Schleife an den Anfang springen möchte.
Naja, dann löst man es allgemein eben mit einer Exception (zumindest man möchte wirklich miesen Code erzeugen :-) ):

Code: Alles auswählen

while 1:
    try:
       <code>
        if foo:
            raise ContinueException()
        <code>
        irgendwann:
            break
    except ContinueException:
        pass
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

Montag 5. November 2007, 22:55

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?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Montag 5. November 2007, 23:22

mq hat geschrieben: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 ...

Im Übrigen hoffe ich nicht, daß goto bei mir tatsächlich tausende Male beim Start aufgerufen wird - wird nämlich meist zum Errorhandling eingesetzt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 6. November 2007, 13:23

mq hat geschrieben:Naja, hin und wieder kann goto praktisch sein, dass viele Leute es absolut verteufeln, halte ich fuer einen Fehler.
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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Dienstag 6. November 2007, 13:53

mq hat geschrieben:Wusstet ihr, dass beim simplen Starten eines Python-Interpreters mehrere tausend mal goto ausgefuehrt wird?
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...
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 6. November 2007, 14:01

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 Modvoice
BlackJack

Dienstag 6. November 2007, 14:22

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.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Dienstag 6. November 2007, 14:35

Der (gute) Einsatzzweck von ``goto`` ist da also der gleiche wie Ausnahmebehandung in höheren Sprachen.
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.
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 ;)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 6. November 2007, 14:47

keppla hat geschrieben:Also eher: es gibt in c gute Gründe für goto, nicht, es gibt gute Gründe für goto.
Mag jemand Exceptions für C haben? ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Dienstag 6. November 2007, 15:27

wow. das ist schon etwas unheimlich...
Antworten