Sprungmarken?

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.
Benutzeravatar
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Sprungmarken?

Beitragvon Psus82 » Donnerstag 22. Juli 2004, 12:03

Hi,

gibt es in Python eine Möglichkeit innerhalb einer Funktion Sprungmarken zu setzen?
Wenn ja wie sieht das setzen einer Sprungmarke und der Aufruf aus?


Gruß
Psus82
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
RainBowBender
User
Beiträge: 53
Registriert: Dienstag 6. April 2004, 10:33

Beitragvon RainBowBender » Donnerstag 22. Juli 2004, 12:30

so etwas gibt es nicht.

allerdings kannst du lokale Funktionen definieren: also

Code: Alles auswählen

def foo1():
    def foo2():
        """Eine Funktion die nur innerhalb des Namespaces von foo1 zur verfügung steht"""
        print "test"

    foo2()
Benutzeravatar
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

OK aber.

Beitragvon Psus82 » Donnerstag 22. Juli 2004, 12:33

Gut aber wie kann ich in der lokalen Funktion auf Variablen der oberen Funktion zugreifen?
Und wie kann ich in einer if else Anweisung diese Unterfunktion aufrufen.


Gruß
Psus82
Drei Dinge die Programmierer hassen:

1.)Sonnenlicht

2.)Frische Luft

3.)Das ätzende Geräusch zwitschernder Vögel
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 22. Juli 2004, 13:17

Hi Psus82,

Gut aber wie kann ich in der lokalen Funktion auf Variablen der oberen Funktion zugreifen?

Code: Alles auswählen

def foo1(bedingung):
    prefix = "foo sagt:"

    def foo2(what):
        print prefix, what

    if bedingung:
        foo2("bedingung ist wahr!")
    else:
        foo2("bedingung ist unwahr!")

foo1(1)
foo1(0)

Besser ists aber die Variablen als Parameter an Funktionen zu übergeben.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Beitragvon Beyond » Freitag 23. Juli 2004, 22:11

Es gibt Sprungmarken!!!
Such mal in der Python-Announce-List nach "GoTo", so um den 1.4. (vmtl. 2004).

Funktioniert, ist aber soooo schlechter Stil, daß es als Aprilscherz auftauchte :-)

cu beyond
Gast

Beitragvon Gast » Sonntag 25. Juli 2004, 09:58

Also, ich weiß ja nicht....
ich stand bei manchen sachen auch da und dachte:"Jetzt ein goto, und ich wäre glücklich".

Aber nach ein wenig rumgrübeln habe ich festgestellt, das ich durch umplanung des Codes(zerlegen in kleinere Module, Änderung von entscheidungskriterien,...) diesen (Basic-)Sprachkonstruct nicht brauche.

MfG, querdenker
P.S.: Hat allerdings auch schonmal bedeutet, ein Programm komplett neu zu überarbeiten :wink:
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Sonntag 25. Juli 2004, 12:09

Hi. Ich finde auch, dass goto's schlechtester Stil sind, denn wer die verwendet ist einfach nur zu faul sein Programm klar aufzubauen. Wirklich nötig hatte ich die nie...
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 25. Juli 2004, 13:25

Also ich hab bei Sprachen, die goto kennen immer das Gefühl, daß der Sprache etwas fehlt um wirklich strukturiert programmieren zu können. Nur bei Assembler ist IMHO das goto-equivalent jmp vertretbar, ansonst Finger weg von goto!


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder