首页 > 解决方案 > 使用入口值调用函数返回框架

问题描述

我有下面的代码,实际上是 aframe 本身的两个函数。所以我用一个条目的值调用第二个函数..

现在被调用的函数以元组的形式接收值,第一个值为:< main .StartPage object .!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] 来获取实际值,但它似乎不正确。

标签: pythonpython-3.xtkinter

解决方案


当你这样做

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)

推荐阅读