如何将creatLabels函数中的(Answer)变量传递给检查函数?
def createLabels(Ques):
AnswerINP = Entry(root)
AnswerINP.grid(column=3, sticky=W )
Answer = AnswerINP.get()
Checkbutton = tk.Button(root, text="CHECK", command= check)
Checkbutton.grid()
def check ():
r=requests.get('https://opentdb.com/api.phpamount='+TextINP1.get()+'&difficul)
res = r.json ()
for data in res ['results']:
if Answer.title()== data["correct_answer"]:
print("Correct")
以这种方式编写变量时,我得到的答案未定义
答案 0 :(得分:0)
您可以使用Lambda Expression将变量传递给检查函数。 Lambda表达式基本上是一行匿名(未命名)函数。
要执行此操作,只需将Checkbuttons
命令选项更改为lambda表达式,并将参数添加到check()
中即可,功能如下:
def createLabels(Ques):
AnswerINP = Entry(root)
AnswerINP.grid(column=3, sticky=W )
Answer = AnswerINP.get()
Checkbutton = tk.Button(root, text="CHECK", command=lambda a=Answer: check(a))
Checkbutton.grid()
def check (answer):
...
这应该给您想要的结果。