2012-09-03 146 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 __()'構造函數中的文件名外。 –

相關問題