Unterscheidung, Anzahl Funktionsaufrufe

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.
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Unterscheidung, Anzahl Funktionsaufrufe

Beitragvon blubber » Donnerstag 12. April 2007, 07:07

Guten Morgen,

hab eine Frage zu besagtem Thema und hoffe, dass mit jemand weiterhelfen kann.
Und zwar hab ich eine Funktion, welche keine Übergabeparameter bekommt (dies ist leider fest), also z.B.

def Testfunktion():

Nun wird diese Funktion von unterschiedlichen Programmteilen ab und zu aufgerufen, also mehrmals. Es ist nun so, dass ich gerne beim ersten Aufruf innerhalb der Funktion einen anderen Code ablaufen lassen möchte, als beim zweiten Aufurf, also z.B.

Code: Alles auswählen

def Testfunktion():
     if erster_aufruf:
         code
     if zweiter_aufruf:
         code


geht das irgendwie?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Donnerstag 12. April 2007, 08:06

Grundsätzlich ist das möglich, z.B. mit Funktionsattributen:

Code: Alles auswählen

def Funktion():
    if not hasattr(Funktion, 'aufgerufen'):
        Funktion.aufgerufen = True
        ... code ...
    else:
        ... code ...


Allerdings gibt es wahrscheinlich eine bessere Lösung, die wir finden können, wenn du uns verrätst, was die Funktion denn in beiden Fällen tun soll.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Beitragvon blubber » Donnerstag 12. April 2007, 08:20

Hi,

erstmal danke fuer die Lösung.
Also mein erster Funktionsaufruf setzt ansich blos irgendwelche Variablen. (Es besteht eine Anbindung zu einer Simulationssoftware). Mit diesen Variablen wird ein Fehler erzeugt. Dann läuft das normale Programm weiter (Fehlerreaktionstest) und am Schluss möchte ich nochmal die Funktion aufrufen, welche die vorher gesetzten Variablen wieder zurück setzt, also den Fehler zurücksetzen.

Gruß

Wer ist online?

Mitglieder in diesem Forum: __deets__