首页 > 解决方案 > 获取在函数内部创建的变量值

问题描述

我想从一个函数中获取一个变量,以便在另一个函数中使用这个变量。简单的例子:

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

标签: pythonfunctiontkinter

解决方案


您需要将值保存在众所周知的地方:

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

推荐阅读