如何解决“未定义”但已定义的问题?

时间:2019-08-12 16:33:19

标签: python python-3.x visual-studio class tkinter

我正在用python编写代码,并且制作了一个主类。我正在与tkinter合作。 在我班上
Main(tk.Tk)类: 我有多个变量。我定义了两个变量。在上面,我下面写了另一个变量,它运行着另外两个变量。但是然后它说,那些没有定义,但是是。错误消息:未定义名称“ bruteforceABC”

class Main(tk.Tk):
    def bruteforceABC():
        for length in range(1, 3): # only do lengths of 1 + 2
            to_attempt = product(chars, repeat=length)
            for attempt in to_attempt:
                    print(''.join(attempt))

    def clear1():
        list = window.grid_slaves()
        for n in list:
            n.destroy()

    def clearforce():
        bruteforceABC()
        clear1()

我不知道,为什么这么说,它没有定义。因为我已经定义好了。我该怎么办,我没有收到此错误? 谢谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您已将这些函数定义为类方法,但将其称为泛型函数。您应该使用self.method()来呼叫他们。

class Main(tk.Tk):
    @staticmethod
    def bruteforceABC():
        for length in range(1, 3): # only do lengths of 1 + 2
            to_attempt = product(chars, repeat=length)
            for attempt in to_attempt:
                    print(''.join(attempt))

    @staticmethod
    def clear1():
        list = window.grid_slaves()
        for n in list:
            n.destroy()

    def clearforce(self):
        self.bruteforceABC()
        self.clear1()