Neulingsfrage: Variablen bei Script-Aufruf übergeben
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.
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> ")
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.
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.
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
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?