【问题标题】:TypeError: takes exactly 1 argument (2 given)TypeError: 只接受 1 个参数(给定 2 个)
【发布时间】:2021-08-20 00:38:59
【问题描述】:

我是编程新手,学过 Python 语法。卡在我的第一个 GUI 程序上!

这是我的代码:

#User name

userLabel = Label(self.signView, text="User Name")
userLabel.grid(sticky = E)
self.userEntry = Entry(self.signView)
self.userEntry.grid(row=0, column=1)

self.labelUserVar = StringVar()
self.validLabel = Label(self.signView, textvariable=self.labelUserVar, 
                         anchor="w", fg="red")
self.validLabel.grid(row=0, column=2)
self.userEntry.bind("<Return>", self.CheckUser)

下面是 CheckUser() 函数:

def CheckUser(self):
    self.labelUserVar.set("unavailable user name!")

我收到了这个错误。

TypeError: CheckUser() takes exactly 1 argument (2 given)

【问题讨论】:

  • 只是让你明白(如果你还没有),错误是由于函数需要 1 个参数(self),但你给它 2,self 和它的一个事件,由于绑定到回车键。以为我会解释它,因为我认为给出的答案并不清楚为什么它会修复错误。干杯!

标签: python tkinter typeerror


【解决方案1】:

你传递给.bind()takes the event as an argument的函数,不管你是否需要它都会传入。

将函数定义改为

def CheckUser(self, event):
    self.labelUserVar.set("unavailable user name!")

【讨论】:

    【解决方案2】:

    这个:

    server.bind((host,port))

    不是这个:

    server.bind(host,port)

    将地址(主机、端口)绑定到套接字。在AF_INET下,地址以元组(主机、端口)的形式表示。

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 2019-06-24
      • 2013-07-08
      • 2018-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      相关资源
      最近更新 更多