TypeError:generatecode()接受0个位置参数,但给定了1个

2024-09-26 22:52:59 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试创建一个程序,当您按下按钮(生成代码)时,它会从文件中提取一行数据并输出到

TypeError:generatecode()接受0个位置参数,但给定了1个

from tkinter import *



class Window(Frame): 
   def __init__(self, master = None):
       Frame.__init__(self, master)

       self.master = master

       self.init_window()


def init_window(self):

    self.master.title("COD:WWII Codes")

    self.pack(fill=BOTH, expand=1)

    codeButton = Button(self, text = "Generate Code", command = self.generatecode)

    codeButton.place(x=0, y=0)

def generatecode(self):
    f = open("C:/Programs/codes.txt", "r")

    t.insert(1.0. f.red())


root = Tk()
root.geometry("400x300")

app = Window(root)

root.mainloop()

Tags: 数据代码self程序masterinitdefroot
1条回答
网友
1楼 · 发布于 2024-09-26 22:52:59

当对类调用方法时(例如本例中的generatecode()),Python会自动将self作为第一个参数传递给函数。所以当你调用self.my_func()时,它更像是调用MyClass.my_func(self)

因此,当Python告诉您“generatecode()接受0个位置参数,但给定了1个”时,它告诉您,您的方法设置为不接受任何参数,但是在调用该方法时,self参数仍在传递,因此实际上它正在接收一个参数。

向方法定义中添加self应该可以解决问题。

def generatecode(self):
    pass  # Do stuff here

或者,可以使方法成为静态的,在这种情况下,Python将而不是作为第一个参数传递self

@staticmethod
def generatecode():
    pass  # Do stuff here

相关问题 更多 >

    热门问题