setzen Ich habe einen Telegrammbot, der mit verschiedenen Nachrichten abhängig vom Wert funcnex.state
reagiert hat.Variablen für neuen Benutzer in Telegrammbot (Python)
Funktion ist mit dieser Klasse Betrieb:
class FuncCreator:
def __init__(self, start_state):
self.state = start_state
def __call__(self):
print(self.state)
self.state += 1
funcnex = FuncCreator(0)
Die Antwortnachricht wie folgt definiert ist:
elif ' Next' in text:
if funcnex.state == 0:
b2 = u'\U0001F532'+' Next'
line1 = linecache.getline('stattxt/sc1-1.txt', 6)
line2 = linecache.getline('stattxt/sc1-1.txt', 7)
json_keyboard = json.dumps({keym: [[b2]], 'resize_keyboard': True, 'one_time_keyboard': False})
reply(u'\U000025FC'+line1+'\n'+line2)
funcnex()
elif funcnex.state == 1:
b2 = u'\U000027A1'+' Next'
line1 = linecache.getline('stattxt/sc1-1.txt', 12)
line2 = linecache.getline('stattxt/sc1-1.txt', 13)
json_keyboard = json.dumps({keym: [[b2]], 'resize_keyboard': True, 'one_time_keyboard': False})
reply(u'\U0001F532'+line1+'\n'+line2)
funcnex()
Das Problem ist, dass, wenn mehrere Benutzer die Interaktion mit dem Bot, der funcnex.state
für die neue Benutzer könnte bereits 1
oder höher sein, wenn ein Benutzer zuvor mit dem Bot interagiert hat.
Die Frage ist - wie kann ich es für jede neue Benutzer zurücksetzen?
Was bedeutet, dass zum Beispiel
Wenn ein Benutzer das Wort Next
an den Bot zum ersten Mal sendet, würden sie 1. Antwort erhalten, wenn er das Wort Next
für zweites Mal sendet, würde er Antwort 2 erhalten , und so weiter.
Um die Anzahl der Zeiten, die der Benutzer das Wort Next
sendet, zu zählen, verwende ich die Funktion, die im Beispiel ist. Wenn es nur einen Benutzer geben würde, würde alles gut funktionieren, aber für den zweiten Benutzer, wenn counter
den Wert 0
für den Anfang haben sollte, bekommt er jetzt den Wert des Zählers, den der vorherige Benutzer gewonnen hat.
Warum erstellen Sie keine Instanz pro Benutzer? – jonrsharpe
Vielen Dank für Ihre Antwort! Was meinst du? Wie könnte es aussehen? Sorry für die noob Fragen, das ist mein Studentenprojekt. –
Von 'FuncCreator', der Sache, die das Zählen macht. Erstellen Sie für jeden neuen Benutzer einen neuen Eintrag. – jonrsharpe