Я пытаюсь, чтобы кнопка передавала функцию и добавляла переменные, которые будут использоваться (чтобы избежать глобальных переменных), однако я продолжаю получать сообщение об ошибке, что мне не хватает позиционного аргумента, несмотря на то, что я уже написал это.
def ShowQuestion(quiz, instance, questionsAnswered, questionsdone, question, user_answer, check_answer, data):
user_answer.focus_set()
if instance == 0:
question_set = random.sample(data,5)
questionask = random.choice(question_set)
current_question = questionask['question']
question.config(text=current_question)
question_set.remove(questionask)
check_answer.config(command = lambda : Question.Checkanswer(quiz, instance, questionsAnswered, questionsdone, question, user_answer))
check_answer.grid(row = 5, column = 3)
def Checkanswer(quiz, choicer, instance, questionsAnswered, questionsdone, question, user_answer):
#print (choicer)
questionsdone += 1
if type(user_answer.get()) == str:
user_answer = str(user_answer.get()).lower()
else:
user_answerwrong = user_answer.get()
if user_answer in question_answer:
correct_question +=1
else:
pass
if questionsAnswered == 5:
messagebox.showwarning("Final Score","Game Over \n Final Score: %s \n" %(self.user_score))
quiz.destroy()
else:
instance +=1
user_answer.delete(0, 'end')
Question.ShowQuestion(quiz, instance, questionsAnswered, questionsdone, question, user_answer, check_answer, data)