Tkinter在类内调用函数

3
在我的新程序中,一直出现相同的代码行,因此我决定编写一个函数,并在需要时调用它。但是我一直收到错误消息,告诉我“未定义我的函数”。我正在学习Python编程,但无法解决它!
这是我的代码:
import tkinter as tk
from tkinter import ttk

class GUI(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)

        #Window_Creation
        scr_xloc = int(self.winfo_screenwidth() / 2 - 800 / 2)
        scr_yloc = int(self.winfo_screenheight() / 2 - 600 / 2 - 30)

        self.geometry("800x600+{}+{}".format(scr_xloc, scr_yloc))
        self.minsize(width = 800, height = 600)
        ...

    def Factorial_Calculation():
        user_input = int(float(user_input))
        import math

        factorial_num = math.factorial(user_input)

        self.Output_Box.delete("1.0", "end")
        self.Output_Box.insert("1.0", str(user_input) + "! = " + str(factorial_num))

    def x_Factorial_Loop(self, event):
        global user_input
        ...

        Factorial_Calculation()

你的缩进可能有误。你是否混合使用了制表符和空格? - mechanical_meat
你收到的确切和完整的错误信息是什么? - Bryan Oakley
NameError: 名称 'Factorial_Calculation' 未定义 - Kotropoulos Leontios
1个回答

2

您遇到的问题是调用了Factorial_Calculation()函数,您应该在类内部调用它,使用self.Factorial_Calculation()。但是,在类外部使用不同。在被调用的函数前面添加"self.",因为它适用于您所调用的类,并从您所调用的类中提取定义。


需要在括号内放置一个"self"吗?def Factorial_Calculation(self): - Kotropoulos Leontios
准确来说,只有在定义时才需要这样,否则在调用它时,只需使用通常的 Factorial_Calculation() 即可。 - That One Random Scrub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接