首页 > 解决方案 > TypeError: command1() 接受 0 个位置参数,但给出了 1 个

问题描述

我正在尝试为一个项目创建一个登录系统,但由于某种原因,TypeError: command1() takes 0 positional arguments but 1 was given当我尝试调用我的函数时,它会向我抛出错误。我知道你可以做到command1(self),但是当我输入参数时,它什么也没做,但不会给我一个错误

from tkinter import *
from tkinter import messagebox

def command():
    if name.get() == "admin" and password.get == "password":
        login.quit()

login = Tk()
admin_screen = Toplevel()

login.title("Login")
login.geometry("500x500")
login.configure(bg="white")

admin_screen.geometry("500x500")
admin_screen.title("Admin Screen")
admin_screen.configure(bg="white")

lbl = Label(login, font={"Helvtica", 10}, text="Username")
lbl.pack()
name = Entry(login)
name.pack()

lbl2 = Label(login, font={"Helvtica", 10}, text="password")
lbl2.pack()
password = Entry(login)
password.pack()
password.bind("<Return>", command)

login.mainloop()

标签: pythontkintertypeerror

解决方案


我在您的代码中看不到该功能command1。你的意思是command()相反吗?如果是,这个答案是给你的。问题是,每当您将函数绑定到键时,即使没有按字面输入参数,也会自动给出参数。您只需将command()函数修改为:

def command(*args):
    #rest of the code here

上面给出的*args所有参数要么由系统自动给出,要么由用户自己给出。command()不采用系统给出的参数是什么给了你TypeError


推荐阅读