2016-01-10 59 views
-1

我正在寫一個python程序,爲輸入文件和輸出目錄進行用戶輸入,然後使用子進程模塊獲取輸入文件的dd圖像。我寫了下面的代碼。我無法在一個def中使用我使用的變量,在其他def部分中。請幫助我,因爲我是Python新手。如何在不同的python tkinter按鈕事件操作之間使用變量?

def open_dir(): 
    o_file = subprocess.call(["zenity","--file-selection","--directory","--title=Select Destination Directory"]) 
    o_var = StringVar() 
    o_var.set(o_file) 

def quit_root(): 
    root.destroy() 


def get_input(): 
    msg1 = subprocess.call(["df","-h"]) 
    msg2 = StringVar() 
    msg2.set(msg1) 
    msg = Message(labelframe, textvariable=msg1) 
    msg.pack() 
    in_file=subprocess.check_output(["zenity","--entry"]) 
    var=StringVar() 
    var.set(in_file) 


def dev_img(): 
    global var 
    global o_var 
    input_file=var 
    output_file=o_var+"device.img" 
    out = subprocess.check_output(["dd","if="+input_file,"|pv|","of="+output_file,"bs=1024"], stderr=subprocess.STDOUT) 
    var1 = StringVar() 
    var1.set(out) 
    label1 = Message(labelframe, textvariable=var1) 
    label1.pack() 

請建議我一些方法,這樣我可以用「變種」和「o_var」從open_dir()和get_input()變量和dev_img使用這些varibales()。

+0

您可以將參數傳遞給函數,並從中返回(多個)值... – StoryTeller

+0

但是我在Tkinter按鈕中使用了命令選項。我如何將參數傳遞給它? –

+0

我只想使用其他兩種方法中使用的變量。那麼我可以讓他們返回一些變量? –

回答

0

我想我知道你在問什麼。你如何從一個函數向另一個函數「繼承」輸出變量?爲此,您需要使用類。 Python完全面向對象,所以它的工作方式允許對象相互交互。

退房此鏈接:http://www.diveintopython.net/object_oriented_framework/defining_classes.html

本教程將讓你創建一個類,這將允許您使用var和var_o在你定義的任何功能。

希望這會有所幫助。

相關問題