Я не могу получить возвращаемое значение из функции в Python - PullRequest
0 голосов
/ 18 мая 2019

В упомянутом коде я пытаюсь получить значение «text», которое находится внутри функции.Вне функции с одной переменной «A», но здесь я ничего не получаю. Может ли кто-нибудь помочь мне в этом вопросе, пожалуйста

Также, когда я пишу оператор print внутри функции, он печатает значение

введите код здесь

from tkinter import *
window = Tk()
window.geometry('500x500')
def callback(self):
    text = No_of_chances.get()
    return text
No_of_chances = Entry(window)
No_of_chances.place(x=50, y=300)
No_of_chances.bind('<Return>', callback)
A=text
print(A)

window.mainloop()

1 Ответ

1 голос
/ 18 мая 2019

Переменная text не определяется при попытке сделать A=text, это потому, что функция callback() вызывается только при нажатии кнопки ввода. Поэтому text не существует, когда вы пытаетесь присвоить его A

Функция обратного вызова работает отлично, она получает текущую строку в вашей записи Number_of_chances и возвращает ее.

При этом ваш вопрос очень неясен, так как вы не предоставляете контекста тому, что вы хотите сделать с текстом, который вы получаете из Entry, когда нажимаете ввод, если вы предоставляете какой-то контекст, который я или кто-то другой мог бы чтобы помочь решить вашу проблему лучше.

Вот решение, поэтому A будет содержать желаемое значение.

from tkinter import *

window = Tk()
window.geometry('500x500')
text = ""

def callback(event):
    text = No_of_chances.get()
    print(text)
    return text

No_of_chances = Entry(window)
No_of_chances.place(x=50, y=300)
No_of_chances.bind('<Return>', callback)
A=text
print(A)

window.mainloop()
...