2012-09-03 88 views
1

因此,我很难理解如何从一个类的另一个函数中访问函数的变量值。如何在一个类中创建一个全局函数的变量?

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")]) 
+0

想要在初始化程序中访问'filename'?这将在loadfile()被调用之前调用。 –

+0

感谢您指出。 –

回答

1

眼下文件名是刚刚在loadfile函数的局部变量。您需要将文件名称作为对象的属性。做self.filename = ...,然后在其他方法,你可以作为self.filename访问它。

(在你问这个特殊的情况下似乎有点奇怪,因为loadfile不会一直叫你似乎想的时候访问filename,所以filename甚至不存在了。但是,这是一般的想法,无论如何,你显然需要调用变量被定义的函数,然后才能对它进行任何操作。)

+0

除OP需要访问'__init __()'构造函数中的文件名外。 –

相关问题