【发布时间】:2016-11-15 12:19:47
【问题描述】:
我正在创建一个从文本小部件获取命令的海龟程序,然后在 tkinter Canvas 上绘图。但是当我 eval() 来自 Text 小部件的那个命令时,该程序将成为 Python Shell(它甚至会接受 print("Hello World") 作为海龟命令)
这就是我想说的:
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()
有人可以向我解释如何将用户输入限制为仅创建的自定义命令。非常感谢!
【问题讨论】:
-
您可以列出接受的命令,并在评估之前检查用户输入是否是其中之一。这可能需要一些正则表达式检查。
标签: python tkinter command turtle-graphics