你好,聪明的人,
我有一个小程序,在单击按钮时,应该根据用户条目,用新列表更新组合框。
事实上,我假设不需要给出任何参数,因为被调用函数“获取”用户条目,然后更新组合框。无需其他外部信息。
我不幸收到错误消息:
TypeError:Func_Update_MA() takes 1positional argument but 2 were given.
如何解决此问题? 老实说,我并没有真正了解整个“自我”,但我几乎尝试了使用自我,不使用自我并将其与args *或kwargs **(对我来说是另一个奥秘)相结合的每种组合。
如果您需要更多代码,我将不提供它。
非常感谢!
class Class_MA_Win():
def __init__(self, Win_MA_Sel, Cockpit_Win):
Btt_Update_MA = Button(self.Mitarbeiter_Selection_Win, text="Liste Updaten")
Btt_Update_MA.bind("<Button-1>",self.Func_Update_MA)
Btt_Update_MA.grid(column=2, row=3, padx=10, pady=10)
def Func_Update_MA(self):
Entry_name = self.Ent_first_name_MA.get()
Entry_lastname = self.Ent_last_name_MA.get()
Entry_ID = self.Ent_ID_MA.get()
答案 0 :(得分:0)
每当您使用widget.bind(...)
时,它将返回一个事件对象,该对象具有许多描述事件的属性。然后将其传递给您的函数Func_Update_MA
,该函数不接受任何参数,因此不接受错误。
要解决此问题,只需将事件作为arg接受:
def Func_Update_MA(self,event=None):
...
您还提到了args
和kwargs
,但您似乎错误地将星号定位。正确的是*args
和**kwargs
,如下所示:
def Func_Update_MA(self, *args, **kwargs):
...