Neulingsfrage: Variablen bei Script-Aufruf übergeben

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.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Erstmal importiert man nicht lokal, gewoehn dir sowas erst gar nicht an. Und timedelta ist eine Klasse im Modul datetime. Du behandelst das aber als ob es ein Attribut der Klasse datetime aus dem Modul datetime waere. Das ist halt falsch.
dermaxem
User
Beiträge: 18
Registriert: Montag 30. Mai 2022, 16:53

ich habe es nun so gelöst:

Code: Alles auswählen

def vergleichen(now):
    global lastspray
    istzeit  = time()
    if istzeit > lastspray + (<vergleichswert>)  : #wert z.b. 10 Minuten
        # erlaubt
        print ("ok, die Differenz ist größer als der <Verglkeichswert>")
    else:
        # nicht erlaubt
        print ("nein, die Differenz ist kleiner als <Verglkeichswert> ")
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Man benutzt keine globalen Variablen. Du hast doch Argumente, warum kann lastspray nicht als Argument uebergeben werden? Und "vergleichen" ist ein doch sehr generischer Name. Was vergleicht der denn? Aepfel mit Orangen?

Wenn man mit time arbeitet, sollte man monotonic() benutzen, denn sonst ist nicht garantiert, dass die Zeit monoton fortschreitet, weil zB die Sommerzeit-Umstellung kommt. Allerdings ist das auch ein Problem mit datetime. Darum ist je nach Anwendung time.monotonic hier immer die bessere Wahl.
dermaxem
User
Beiträge: 18
Registriert: Montag 30. Mai 2022, 16:53

wie, wenn nicht via "global", übergibt man denn einer Funktion Werte aus einer anderen Funktion?
Benutzeravatar
pillmuncher
User
Beiträge: 1482
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

dermaxem hat geschrieben: Montag 27. Juni 2022, 10:15 wie, wenn nicht via "global", übergibt man denn einer Funktion Werte aus einer anderen Funktion?
Als Argumente beim Aufruf der Funktion oder als Rückgabewert aus der Funktion.
In specifications, Murphy's Law supersedes Ohm's.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

dermaxem hat geschrieben: Montag 27. Juni 2022, 10:15 wie, wenn nicht via "global", übergibt man denn einer Funktion Werte aus einer anderen Funktion?
Du hast doch sprichwoertlich ein anderes Argument an deine Funktion uebergeben. Warum ist das da moeglich, aber lastspray ist kein Argument? Wo ist da fuer dich der Unterschied?
Antworten