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

hallo leute,

nun, mein erster post..., also ich brauche ein goto modul, aber nicht das vom 1. april 2004: http://entrian.com/goto/, sondern eben ein anderes ^^.

bitte helft mir :)
BlackJack

Was gefällt Die an dem denn nicht? Und wofür meinst Du so etwas zu brauchen?
ch100

habs vergessen zu schreiben, dass es bei mir nicht funktioniert :(, hab python 2.4.4 ^^, und ich brauch es, um zum anfang der funktion zu springen :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ch100 hat geschrieben:habs vergessen zu schreiben, dass es bei mir nicht funktioniert :(, hab python 2.4.4 ^^, und ich brauch es, um zum anfang der funktion zu springen :)
Uhh, vielleicht solltest du BASIC verwenden, dort darf man sogar vor die Zeilen zahlen schrieben, um zu diesen zu springen.

Mal im Ernst: Wenn du goto brauchst, ist an deinem Ansatz was falsch. Nimm eine `while`-Schleife.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ch100

das geht bei meinem code leider nicht so ganz :(
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ch100 hat geschrieben:das geht bei meinem code leider nicht so ganz :(
Warum? `goto` zu verwenden ist *keine* Lösung.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ch100

ich brauchs sowieso nur ein einziges mal ^^
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Das geht bestimmt irgendwie. Hast du mal das entsprechende Code-Stück für uns? Und schau mal, ob du etwas Code in eine weitere Funktion auslagern kannst, um damit dein Problem zu lösen.
ch100

oO, es sind hunderte zeilen code in der funktion, und die sind alle wichtig, und wenn ich die auslagern möchte müsste ich nen dreiviertel davon umschreiben und mit einem einzigen goto würde alles wunderbar funktionieren :) xD
BlackJack

Dann hast Du Pech gehabt. 100 Zeilen ist auch schon recht lang für eine Funktion.
ch100

es wär viel umständlicher, wenn ichs auslagern würde ^^, weil es ne handle funktion für nen server ist, und voila, schon hab ich zu viel verraten ^^ xD
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Du machst es nicht gerade einfach, dir helfen zu lassen.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Wenn du sowieso nur an den *Anfang* der Funktion springen willst, sehe ich nicht, was gegen

Code: Alles auswählen

def funktion(args...):
    while 1:
        <code>
        if foo:
            continue # springe zum anfang
        <code>
        irgendwann:
            break # ende
spricht.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
BlackJack

Es funktioniert nicht so einfach wenn man aus einer inneren Schleife an den Anfang springen möchte.
ch100

problem gelöst, ich musste nur die funktion extrem verändern :(
lunar

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: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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

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:

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Antworten