Как передать переменную, определенную как (Entry.get ()), из одной функции в другую? - PullRequest
1 голос
/ 26 мая 2019

Как передать переменную (Answer) из функции creatLabels для проверки функции?

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")

Я получаю, что переменная Answer не определена, когда я пишу ее таким образом

1 Ответ

0 голосов
/ 26 мая 2019

Вы можете передать переменную в вашу функцию проверки с помощью Лямбда-выражения .Лямбда-выражения в основном представляют собой одну строку, анонимные (безымянные) функции.

Чтобы сделать это, вам просто нужно изменить параметр команды Checkbuttons на лямбда-выражение, а также добавить аргумент в 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):
    ...

Это должно дать вам желаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...