首页 > 解决方案 > 不是一个类 - TypeError: function() 接受 0 个位置参数,但给出了 1 个

问题描述

我已经阅读了 Stackoverflow 上有关此错误的几篇帖子以及与之相关的问题:因此此函数不是类方法,脚本中没有重复,等等。它是一个 tkinter 偶数驱动函数。我在另一个帖子上看到了类似的,我试过了,它有效,但我的没有,我不知道为什么。
如果您没有什么要说的,请不要发表明智的言论,否则在此先感谢您的帮助。

为了清楚起见,我将上下文简化为最基本的内容:

from tkinter import *

w = Tk()

def initializeVars():
    global extRequired, Keyword, filePath
##    extRequired = text1.get()
##    Keyword = text2.get()
##    filePath=BaseDir+AllFiles
    print('initializing variables')

def func(event):
    print("You hit return.")
w.bind('<Return>',initializeVars)

# Buttons
Button(text='Select Folder', command=initializeVars).grid(row=10,column=2)

w.mainloop()

如您所见,我正在尝试将initializeVars函数绑定到键盘的返回键

标签: pythonpython-3.xtkinter

解决方案


w.bind('<Return>', initializeVars)

事件绑定需要一个将event参数作为第一个参数的函数。因此,当您initializeVars正确使用按钮处理程序时,您需要接受event参数bind才能工作。

如果您不需要该事件,也可以将其设为可选:

def initializeVars(event = None):
    # ...
    print('initializing variables')

推荐阅读