Вызов функции с входным значением возвращается с фреймом - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть код ниже, на самом деле две функции внутри самого кадра.Итак, я вызываю вторую функцию со значением записи.

Теперь вызываемая функция получает значение в виде кортежа с первым значением в виде: <<strong> 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], чтобы получить фактическое значение, но оно кажется неправильным.

1 Ответ

0 голосов
/ 27 февраля 2019

Когда вы делаете

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...