Python 我调用的函数是错误的吗?
我正在使用OOP,遇到了一个问题,当我使用tkinter命令调用类中的方法时,它会给我一个错误 我尝试了不同的方法调用该方法,但我被卡住了Python 我调用的函数是错误的吗?,python,tkinter,Python,Tkinter,我正在使用OOP,遇到了一个问题,当我使用tkinter命令调用类中的方法时,它会给我一个错误 我尝试了不同的方法调用该方法,但我被卡住了 class ToDoList(): def __init__(self): self.tasks = [] def update_listbox(self): self.clear() for task in self.tasks: box_tasks.insert("
class ToDoList():
def __init__(self):
self.tasks = []
def update_listbox(self):
self.clear()
for task in self.tasks:
box_tasks.insert("end", task)
def clear(self):
box_tasks.insert("end", task)
def add(self):
task=txt_input.get()
if task !=" ":
tasks.append(task)
self.update_listbox()
else:
display["text"]=("Input a task")
tkinter命令调用:
add=tk.Button(root, text="Add", fg="DarkOrchid3", bg="blanched almond", command=ToDoList.add)
add.pack(pady=5, ipadx=15)
txt_input=tk.Entry(root, width=25)
txt_input.pack(pady=15)
错误:
TypeError: add() missing 1 required positional argument: 'self'
这就是错误所在,我知道应该定义它,但我不知道它到底是什么意思…
add
是一个实例方法,您不需要实例化ToDoList
。如果您创建了一个ToDoList
的实例,则可以传递该实例的.add
方法
todo = ToDoList()
add = tk.Button(root, text="Add", fg="DarkOrchid3", bg="blanched almond", command=todo.add)
尝试为类
ToDoList()
创建对象。As类函数可以从该类的对象访问
add=tk.Button(root, text="Add", fg="DarkOrchid3", bg="blanched almond", command=ToDoList().add)
每次单击按钮时,它都将创建新的
ToDoList
实例。ToDoList
的实例应在全局范围内创建一次。