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

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

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

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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]#!/usr/bin/env python
import this[/code]
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

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

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

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...
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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]#!/usr/bin/env python
import this[/code]
Antworten