如何在类范围之外访问变量定义的浏览按钮类

时间:2019-07-16 08:52:59

标签: python python-2.7 tkinter

我从主要功能中调用了一类浏览按钮(用于选择文件位置)。此类具有浏览功能,可以捕获存储路径的文件路径变量。现在我只想使用在类外部的类函数中定义的文件路径,例如在类范围之外打印此变量

我已经尝试过将loc设置为全局的其他访问方法,但我猜想由于将参数传递给类而使它们无法正常工作。

'''Using Tkinter module'''

class Browse(tk.Frame,object):
    # here __init__ ,_create_widgets,_display_widgets are defined then I have,

    def browse(self):
        """ Browses a .xlsx file or all files and then puts it on the entry.
        """

        self.filepath.set(fd.askopenfilename(initialdir=self._initaldir,
                                                 filetypes=self._filetypes))
        print(self.filepath.get()), self      #Path of ATP choosen by user
        loc = self.filepath.get()            #want to excess this out of class

我想在类范围之外打印“ loc”值(可以在内部打印) 我怎么能访问相同的。我想这个问题是由于我的班级有争论而引起的,尽管不确定。

1 个答案:

答案 0 :(得分:1)

按现状, Map<Integer, Map<String, Double>> result = new HashMap<>(); originalMap.forEach((key, value) -> { value.forEach((innerKey, innerValue) -> { Map<String, Double> map = new HashMap<>(); map.put(key, innerValue); result.merge(innerKey, map, (left, right) -> { left.putAll(right); return left; }); }); }); System.out.println(result); loc函数中的局部变量,当browse函数返回时,它将不再存在。如果您将其编写为:

browse

然后,如果您有一个名为 self.loc = self.filepath.get() 的{​​{1}}对象,则只需编写Browse即可访问它。

如果即使没有b对象也要访问变量,则将需要一个类变量。设置为:

b.loc

,然后使用Browse访问。但是,类变量的问题与所有全局变量的问题相同-如果您有两个 Browse.loc = self.filepath.get() 对象怎么办?以及如果您尝试从多个线程访问类变量怎么办?