具有输入值的调用函数随框架返回

时间:2019-02-27 20:11:21

标签: python python-3.x tkinter

我有以下代码,实际上在一个框架内有两个功能。因此,我正在使用条目的值调用第二个函数。

现在,被调用的函数将值作为元组接收,第一个值为: << strong>主要 .StartPage对象。!frame。!startpage>

需要帮助修复它。

def loadFile(self):
    self.filename = askopenfilename(filetypes=(("info", "*.xlsx"), ("all file", "*.*")))
    if self.filename:
        extension = self.filename[self.filename.rfind('.'):]
        if extension == '.ods':
            messagebox.showerror("Error", "Error message")
        else:
            vVerify = self.verifyExcel(self.filename)
            if vVerify == 1:
                self.verify_button = tk.Button(self, text="Verified")
                self.verify_button.grid(row=1,column=2)
                #self.filename = self.filename.split("/")[-1]
                self.filedir.delete(0, "end")
                #self.filedir.insert(0, self.dirName+self.filename)
                self.filedir.insert(0, self.filename)
            else:
                messagebox.showerror("Error", "Error message 1")

def verifyExcel(*xlFile):
    print(xlFile)

我只是使用xlFile [1]来获取实际值,但这似乎不正确。

1 个答案:

答案 0 :(得分:0)

这样做的时候

vVerify = self.verifyExcel(self.filename)

这是语法糖

vVerify = YourClass.verifyExcel(self, self.filename)

因此,在方法声明为def verifyExcel(*xlFile)的情况下,xlFile参数将是元组(self, self.filename)。规范的方法是用两个参数声明方法,第一个参数是self,即使您不需要self参数也是如此:

def verifyExcel(self, xlFile):
    print(xlFile)