如何在不同的python tkinter按钮事件操作之间使用变量?

如何在不同的python tkinter按钮事件操作之间使用变量?,python,tkinter,subprocess,dd,Python,Tkinter,Subprocess,Dd,我正在编写一个python程序,为输入文件和输出目录获取用户输入,然后使用子流程模块获取输入文件的dd图像。我已经编写了以下代码。我无法在一个def或其他def部分中使用变量。请帮我解决这个问题,因为我是Python新手 def open_dir(): o_file = subprocess.call(["zenity","--file-selection","--directory","--title=Select Destination Directory"]) o_var

我正在编写一个python程序,为输入文件和输出目录获取用户输入,然后使用子流程模块获取输入文件的dd图像。我已经编写了以下代码。我无法在一个def或其他def部分中使用变量。请帮我解决这个问题,因为我是Python新手

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

请给我一些建议,这样我就可以使用open_dir()中的'var'和'o_var'变量,获取_input(),并在dev_img()中使用这些变量。

我想我知道你想问什么。如何将输出变量从一个函数“继承”到另一个函数?为此,您需要使用类。Python是完全面向对象的,因此它的工作方式允许对象彼此交互

查看此链接:

本教程将允许您创建一个类,该类允许您在定义的任何函数中使用var和var_o


希望这有帮助

您可以将参数传递给函数,并从中返回(多个)值……但我使用的是Tkinter按钮中的命令选项。我如何将参数传递给它?我只想使用其他两种方法中使用的变量。那么,我能不能将它们返回到一些变量中呢?因为你没有确切地指定你在做什么以及你需要什么帮助。将以上内容简化为一个实际演示您的问题的例子。在函数之外定义
o_var
open_dir()
(使其全局化),然后使用
open_dir(o_var)
o_var.set(open_dir())
返回o_文件