“NameError:[函数名]未定义”:tkinter按钮与许多函数绑定时出现问题

2024-06-06 12:25:02 发布

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

我正在为我之前编写的一个脚本创建一个tkinter GUI,我在GUI中创建的按钮遇到了一个问题,该按钮应该运行该程序。按钮的代码如下所示:

start_button = Button(root, text='Run program', command=lambda: [append_keyword_entry(),
                                                                 seo_find_keywords(keywords, urlSoup),
                                                                 seo_find_stopwords(urlSoup),
                                                                 seo_find_404(urlSoup), seo_url_length(url),
                                                                 seo_url_keywords(keywords, url),
                                                                 seo_get_backlinks(url), seo_backlinks_report()])

我对这个按钮使用这个command=lambda: [etc]方法,因为我在研究如何创建这个按钮时看到的一些早期堆栈溢出帖子说这会起作用。唉,当我尝试使用GUI中的按钮时,我得到以下NameError:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\[me]\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883,   in __call__
return self.func(*args)
File "C:/Users/[me]/PycharmProjects/[project name]/main.py", line 41, in <lambda>
seo_find_keywords(keywords, urlSoup),
NameError: name 'seo_find_keywords' is not defined

如果这很重要的话,我不会使用任何类。我还要注意,除了第一个(append_keyword_entry())之外,按钮中列出的所有函数都位于脚本中root.mainloop()的下面。我认为这可能是错误的原因,但我尝试将函数向上移动,结果却产生了不同的问题,比如其他变量变得未定义等等

简言之,我希望您能帮助我查明这个名称错误的确切原因,并帮助我纠正它。如果需要,我可以提供一个GitHub链接到我的完整代码


Tags: lambda代码in脚本seourltkintergui