似乎无法调用 pre_process 函数,出现未定义的名称

Can't seem to call the pre_process function, comes up with undefined name

    def removeStopWords(words):
        return list(set([w for w in words if not w in sw.words('english')]))

    def pre_process(x_user):
        words = []
        with open("words.txt",'r') as data_file:
            textdata = data_file.readlines()
        for line in textdata:    
            try:
                words.append(line.split()[0].lower())
            except:
                pass    
            completed_words = removeStopWords(words)
            print(completed_words)
             
       
    def GButton_6_command(self):

        x_user = root.entry.get()
        pr = pre_process
        pr.user_words(x_user)
        model = pkl.load(open('Training_model.pkl', 'rb'))
        pred = model.predict(pr.user_words)
        print(pred)

代码旨在获取用户输入并将 ML 程序应用于用户输入。 上面是 gui,它可以工作,但是当我尝试调用 pre_process 时, 它将其归类为未定义的名称,我只是想找出原因。

我注意到 pr = pre_process 处的错误,您刚刚存储了对函数的引用,要调用该函数,您必须在函数名称后添加左括号和右括号,在您的情况下应该是 pr = pre_process().

我觉得你用的是类,所以你可以用self.pre_process()

此外,我不建议您采用这样的函数变量值 pr.user_words(x_user),我建议您在函数中使用 return 语句来 return 变量的值您调用的函数。