尝试创建一个程序,当您按下按钮(生成代码)时,它会从文件中提取一行数据并输出到
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()
当对类调用方法时(例如本例中的
generatecode()
),Python会自动将self
作为第一个参数传递给函数。所以当你调用self.my_func()
时,它更像是调用MyClass.my_func(self)
。因此,当Python告诉您“generatecode()接受0个位置参数,但给定了1个”时,它告诉您,您的方法设置为不接受任何参数,但是在调用该方法时,
self
参数仍在传递,因此实际上它正在接收一个参数。向方法定义中添加
self
应该可以解决问题。或者,可以使方法成为静态的,在这种情况下,Python将而不是作为第一个参数传递
self
:相关问题 更多 >
编程相关推荐