Threads oder Unterprogramme?

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.
Nemi
User
Beiträge: 12
Registriert: Samstag 31. März 2018, 17:21

ok dann versteh ich python einfach falsch.

Kenne es nur von anderen Sprachen, dass man Funktionen immer aufrufen muss. Habe in dem Beispiel vorhin zb nicht gesehen, dass Tick aufgerufen wird un dachte deshalb es wird nicht benutzt.
Also läuft Tick dauerhaft mit?
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Nemi: Das hat nichts mit Python zu tun. Auch in Python muss man Funktionen aufrufen. Das scheint halt die API von diesem Chatbotdingens zu sein, dass das ein Modul haben will, und da nachschaut ob es eine Funktion mit dem Namen `Tick()` gibt, und die dann regelmässig aufruft. ”Normal” ist das für Python nicht. Die API ist so nicht wirklich schön.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Nemi
User
Beiträge: 12
Registriert: Samstag 31. März 2018, 17:21

Ok ich habe jetzt __deets__ Beispiel eingebaut.
Entweder der Bot schreibt gar nichts oder Endlosschleife. (je nach Typ der Variable, int str)

Code: Alles auswählen

# Random thread to use
def Tick():
        if int(MsgTimeStamp) is not 0 and int(MsgTimeStamp) <= int(datetime.datetime.now().strftime("%y%m%d%H%M%S")):
                TalkingBot(random.randint(1, 10))
        return
bzw.

Code: Alles auswählen

# Random thread to use
def Tick():
        if MsgTimeStamp is not None and MsgTimeStamp <= int(datetime.datetime.now().strftime("%y%m%d%H%M%S")):
                TalkingBot(random.randint(1, 10))
        return
Es scheint ja irgendwas zu funktionieren, aber halt nicht so wie es soll xD
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Warum machst du diesen datetime-Kram? Das ist komplett Unfug. Warum hast du nicht benutzt, was ich geschrieben habe? Wenigstens zum ausprobieren? Und was tut TalkingBot?
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nemi hat geschrieben: Montag 24. September 2018, 16:37 Kenne es nur von anderen Sprachen, dass man Funktionen immer aufrufen muss. Habe in dem Beispiel vorhin zb nicht gesehen, dass Tick aufgerufen wird un dachte deshalb es wird nicht benutzt.
Also läuft Tick dauerhaft mit?
Wenn du das von anderen Sprachen so kennst, warum hat dich das bei Execute nicht auch gewundert? Das wird doch auch nur aufgerufen, wenn es was zu tun gibt, und laeuft nicht in einer Endlosschleife oder wird von dir selbst aufgerufen.
Nemi
User
Beiträge: 12
Registriert: Samstag 31. März 2018, 17:21

ich benutze die timestamps auch für de datenbank, deswegen das format mit YYMMDDHHMMSS, ist ja deswegen nicht falsch oder? und talkingbot ist einfach nur eine auswahl der texte, je nachdem welche randomzahl rauskommt, kommt ein anderer text.

ich teste jetzt erstma mit den 2 variablen, was die überhaupt abliefern.
melde mich mit erkenntnissen oder verzweiflung
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Doch, es ist falsch. Du erzeugst einen String, den du zum int machen willst. Das geht nicht. Und es funktioniert auch nicht sinnvoll mit der Execute-Funktionalitaet zur Verzoegerung zusammen.

Und auch von None einfach auf 0 zu wechseln, aber gleichzeitig den is-Operator beizubehalten, ist nicht richtig.

Offensichtlich ueberfordert dich die Komplexitaet deines Problems. Das ist ja nicht weiter wild, das wirst du schon lernen. Aber dadurch, das du aus einem einfachen Beispiel erstmal ein kompliziertes machst, und danach dann feststellst "ja, geht nicht", wobei die Fehlerursachen irgendwo liegen koennen, machst du dir das selbst schwerer, als es noetig ist. Und uns. Denn so kann ich nur sagen "geht halt nicht".
Nemi
User
Beiträge: 12
Registriert: Samstag 31. März 2018, 17:21

UPDATE: Problem gelöst. Es lag am falschen Verständnis für Variablen.
Globale Variablen werden in Python anders angelegt und genutzt als in autoit und ähnlichem.

Danke für die ganzen Tips und Hilfestellungen <3
Antworten