python - 获取在函数内部创建的变量值
问题描述
我想从一个函数中获取一个变量,以便在另一个函数中使用这个变量。简单的例子:
from tkinter import *
def test():
intro = "I am "
name = "Phil"
text = intro + name
def printresult():
print(text)
root = Tk()
root.title("Test")
testbutton = Button(root, text="Test", command = test)
printbutton = Button(root, text="print Test", command = printresult)
testbutton.grid(row = 1, column = 0)
printbutton.grid(row = 1, column = 1)
mainloop()
如果我按,testbutton
然后按printbutton
,则会收到错误“名称'文本'未定义”。
那么我怎样才能text
从 中获取变量以在def test()
中使用它def printresult()
?
解决方案
您需要将值保存在众所周知的地方:
from tkinter import *
def test():
intro = "I am "
name = "Phil"
text = intro + name
test.text = text # save the variable on the function itself
def printresult():
print(test.text)
root = Tk()
root.title("Test")
testbutton = Button(root, text="Test", command = test)
printbutton = Button(root, text="print Test", command = printresult)
testbutton.grid(row = 1, column = 0)
printbutton.grid(row = 1, column = 1)
mainloop()