从另一个类中检索变量

时间:2017-11-09 23:42:57

标签: python-3.x arguments parameter-passing

我有两个类,如何将pathentry变量传递给下一个类?本质上,pathentry变量是在文本条目中输入的文件的路径名。

class LabelBrowseButtonWidget(AbsLabelInputWidget):
        """Class created to create button widgets in the header of the gui"""

    def create_input(self):
        filepath_var = StringVar()
        self.Button = ttk.Button(self,
                                 text="Select Input File",
                                 command=lambda: filepath_var.set(self.getFilePath())
                                 )
        self.Button.pack(fil=tk.X, padx=0, expand=True)

        pathentry = ttk.Entry(self, textvariable=filepath_var)
        pathentry.pack(fill=tk.X, padx=5, expand=False)

        return pathentry

    def getFilePath(self):
        filepath = filedialog.askopenfilename(filetypes=(("Excel Files", "*.xls"),
                                                         ("Excel Files", "*.xlsx")))
        return filepath

class LabelButtonWidget(AbsLabelInputWidget):
    """Button created for executing the import of the input file"""

    def create_input(self, *args):
        self.Button = ttk.Button(self,
                                 text="Import Input File",
                                 command=lambda: self.fileImport()
                                 )
        self.Button.pack(fil=tk.X, padx=5, expand=True)

    def fileImport(self):
        pathentry = LabelBrowseButtonWidget.create_input(self.pathentry.get())
        print(pathentry)
        # print("now what?")

我想我在这里有点失落。

1 个答案:

答案 0 :(得分:0)

我不太明白。

您是否希望从任何地方都可以访问变量?如果是,请使用global。定义变量时,首先输入以下行:

全局变量 然后才能访问它。

在创建实例时,是否要将变量传递给类?如果是,请使用__init__函数:

class classname(object):
    def __init__(self, variable):
        self.variable=variable

然后在创建实例时:

instance=classname(variable)

并从类中访问变量:

self.variable

从外面来看:

instance.variable

或者你只是想检索一个属于不同类的属性的变量?如果是这样的话:

instance.variable