Python 是什么导致了这个错误
我试图使图形用户界面,反向用户输入,但有些事情是错误的Python 是什么导致了这个错误,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我试图使图形用户界面,反向用户输入,但有些事情是错误的 from tkinter import * from tkinter.ttk import * def reverse(s): s=U.get() return s[::-1] root=Tk(className="Reverse your text") la=Label(root, text="Enter text to reverse") la.pack() U=Entry(root,textvariable=s
from tkinter import *
from tkinter.ttk import *
def reverse(s):
s=U.get()
return s[::-1]
root=Tk(className="Reverse your text")
la=Label(root, text="Enter text to reverse")
la.pack()
U=Entry(root,textvariable=s)
U.pack()
BT=Button(root, text="reverse", command=reverse(s))
BT.pack()
root.mainloop()
如果不打算向函数传递任何参数,则不应具有def reverse(s):
。同样,对于s
command=reverse(s)
如果要直接使用U=Entry(root,textvariable=s)
。无论如何,您不能在这里使用访问条目的值,则不需要textvariable。get
,因为您从来没有将StringVar对象分配给s
s
返回的值对于用户来说将不可见。如果要显示反转的字符串,则需要将其打印或插入条目或类似内容returns[:-1]
这个错误似乎不言自明。您试图在定义变量
s
之前使用变量s
。当s
不存在时,您认为textvariable=s
在做什么?当您将函数用作按钮命令时,您不能真正返回对象,而是应该修改对象。
Error: U=Entry(root,textvariable=s)
NameError: name 's' is not defined
from tkinter import *
from tkinter.ttk import *
def reverse():
s=U.get()
U.delete(0, END)
U.insert(0,s[::-1])
root=Tk(className="Reverse your text")
la=Label(root, text="Enter text to reverse")
la.pack()
U=Entry(root)
U.pack()
BT=Button(root, text="reverse", command=reverse)
BT.pack()
root.mainloop()