如何在一个类中创建一个全局函数的变量?

时间:2012-09-03 19:38:20

标签: python function tkinter global-variables

所以,我在理解如何从类中的另一个函数访问函数变量的值时遇到了一些麻烦。

    import Tkinter as tk, tkFileDialog

    class test:
        def __init__(self):
            root = tk.Tk()
            song_button = tk.Button(root, text = 'Select Song', fg = 'blue', command = self.loadfile).pack()
            #how do I access the value of filename now?

        def loadfile(self):
            filename = tkFileDialog.askopenfilename(filetypes=[("allfiles","*"),("pythonfiles","*.py")])

1 个答案:

答案 0 :(得分:1)

现在,filename只是loadfile函数中的局部变量。您需要使文件名成为对象的属性。执行self.filename = ...,然后在其他方法中,您可以self.filename访问它。

(在这种特殊情况下,您提出的要求似乎有点奇怪,因为当您似乎想要访问loadfile时,filename将不会被调用,所以{{1}甚至不存在。但这是一般的想法。无论如何,你显然需要在你可以用它做任何事情之前调用定义变量的函数。)