如何将定义为(Entry.get())的变量从一个函数传递给另一个函数?

时间:2019-05-26 01:26:36

标签: python function variables tkinter

如何将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")

以这种方式编写变量时,我得到的答案未定义

1 个答案:

答案 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):
    ...

这应该给您想要的结果。