2017-05-07 2 views
0

Richtig, ich bin ziemlich neu und habe mich nach einer Antwort umgeschaut, aber ich finde einfach keine, die mir passt.Möglichkeit zum wiederholten Ausführen einer Funktion ohne zusätzliche Module alle x Sekunden?

This question ist so ziemlich wie meine, aber ich muss eine Funktion ausführen alle ... Sagen wir 1,2 Sekunden und ohne Unterbrechung oder Blockierung der gesamten While-Schleife.

Der Grund, warum ich Module nicht (außer Zeit) verwenden, weil die nur für mich verfügbar sind: builtins, Mathe, matplotlib.pyplot, numpy, Betreiber, Verarbeitung, pygal, zufällige, re, String, Zeit, Schildkröte und urllib.request.

Gibt es so einen Weg?

+1

Warum haben Sie nicht die gesamte Standardbibliothek? –

+0

Verwenden Sie eine While-Schleife in einem Thread – gaborous

+0

Ich bin versucht, "Nein" zu sagen, es sei denn, Sie haben * threading * (oder etwas mit ähnlichen Fähigkeiten) aus Ihrer Liste verpasst. –

Antwort

1

Wenn Sie Schildkröte verfügbar haben, dann haben Sie tkinter als turtle.TK verfügbar. Sie können dann root.after(1200, function. args) verwenden, um alle 1.2 Sekunden function(*args) auszuführen. Suche nach SO für [tkinter] root.after wird zahlreiche Fragen mit hilfreichen Beispielen geben. Sobald Sie dies jedoch getan haben, müssen Sie alles ereignisgesteuerte und Event-Handler sollten nicht so lange dauern, um die Ereignisschleife zu blockieren.

EDIT: Schildkröte wickelt tkinter.after als turtle.ontimer(function, milleseconds). Die Funktion kann keine Argumente annehmen. Wenn dies ein "Hausaufgaben" -Problem ist, kann dies die beabsichtigte Lösung sein. Es gibt ein Beispiel here.

+0

Danke, das wird mir eine Tonne helfen. – MrWhiteee

0

Verwenden Sie die Modulzeit. Du hast es auf deiner Liste.

+0

Schlaf blockiert die While-Schleife –

Verwandte Themen