我如何定义一个有两个参数的函数,其中一个是Tkinter“event”参数?

2024-04-25 17:04:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个程序,根据用户的选择从特定文本文件中读取单词列表

然后,此单词列表将用作另一个函数“startgame()”的参数,该函数也是我的Tkinter窗口的“事件”,该窗口将根据用户的选择显示从文件中提取的单词

然而,这里的问题是,当一个函数是Tkinter事件时,只能有这一个参数,因此我无法使用获取的单词作为参数

这里有一个最小的可复制示例供参考-

    window = Tk()

    def func1():
        fh = open("file.txt")
        reader = fh.read()
        fetched_words = reader.split('|')
        window.bind('<Return>', func2)

    def func2(event):   # here I need to add another parameter 
        word_display.configure(text=fetched_words[0])  # must have argument 'words' instead of 'fetched_words'

我已经尝试了多种方法来修复这个错误,但到目前为止都没有成功。请帮帮我


1条回答
网友
1楼 · 发布于 2024-04-25 17:04:59

这应该做到:

window = Tk()

def func1():
    fh = open("file.txt")
    reader = fh.read()
    fetched_words = reader.split('|')
    window.bind('<Return>', lambda event: func2(event, fetched_words))

def func2(event, fetched_words):   # here I need to add another parameter 
    word_display.configure(text=fetched_words[0])  # must have argument 'words' instead of 'fetched_words'

通过使用lambda,您可以向绑定添加额外的参数

相关问题 更多 >