Ich erstelle ein Turtle-Programm, das den Befehl von einem Text-Widget erhält und dann auf einen tkinter Canvas
zeichnet. Aber wenn ich eval()
, die aus dem Text
Widget gebieten, würde das Programm eine Python-Shell werden (Es wäre sogar print("Hello World")
als Schildkröte Befehl akzeptieren)Tkinter: Wie man den Benutzer auf eine Reihe von Funktionen beschränkt
Hier ist, was ich versuche zu sagen:
from tkinter import *
import turtle
root = Tk()
canvas = Canvas(root)
tt = turtle.RawTurtle(canvas)
def moveForward (pixels):#Custom function
tt.forward(pixels)
command = "print("Hello World")"
yourCommand = eval(command) # it would accept this as a turtle command
root.mainloop()
Kann jemand erklärt mir, wie man die Benutzereingabe auf die erzeugten benutzerdefinierten Befehle beschränkt. Danke im Voraus !
Sie könnten eine Liste der akzeptierten Befehle erstellen und vor der Auswertung prüfen, ob die Benutzereingabe eine davon ist. Dies erfordert wahrscheinlich einige Regex-Überprüfung. –