def gate(i):
input.bind('<Return>', gate(input.get('end-1c linestart', 'end-1c lineend')))
inputDatabase.run(i)
input.bind('<Return>', gate(input.get('end-1c linestart', 'end-1c lineend')))
input
ist ein Tkinter Textobjekt.Wie eine unendliche Tastatur in Python 3 Tkinter
Ich mache eine Konsole, so dass, wenn der Benutzer die Return-Taste drückt, es die letzte Zeile im Textobjekt erhält. Das muss für immer passieren.
Gibt . Wie kann ich das schaffen? Ich habe versucht, Threads zu verwenden, aber sie sind unendlich, und weil sie die Ressource (glaube ich) des Textobjekts teilen, müssen sie Sperren verwenden, und ich konnte nicht herausfinden, wie das geht. Wenn irgendjemand erklären könnte, wie man Sperren, Threading oder irgendetwas von der Art verwendet, die extrem hilfreich wäre. Vielen Dank! Zwei weitere Dinge: bitte nicht vorschlagen, die System-Rekursionstiefe zu ändern, und ich würde es auch bevorzugen, wenn die Antwort eher prozedural als stark objektorientiert wäre. Es ist jedoch nicht so wichtig. Nochmals vielen Dank im Voraus.
binden Funktionsnamen erwarten - es bedeutet, ohne() und Argumente. Jetzt startet Python beim Start 'gate()', um das Ergebnis an '' zu binden, aber innerhalb 'gate()' ist ein weiteres 'gate()', so dass Rekursion entsteht. Warum benutzt du 'gate()' in 'gate()' ??? –
furas
@furas Damit es für immer läuft – Ember
wird es für immer laufen (oder bis "maximale Rekursion Tiefe überschritten"), aber ich weiß nicht, warum Sie diese Konstruktion brauchen. – furas