python Tkinter : passing an argument to a function

标签 python tkinter

可以请任何人帮助我解决我的问题。我是 python 的新手,在以下情况下我不知道如何将参数传递给函数: 在一个单独的文件 (sentiment_analysis) 中,我有一个字典和一个对象数组:

positiveSentiments = dict() // here are some words related to each of the object
objects = ['Google', 'Apple', 'Motorola']

我需要显示每个对象的积极情绪:

def onButtonPosObject(p):
for key in sentiment_analysis.positiveSentiments.keys():
    if key == p:
        text.insert(END, sentiment_analysis.positiveSentiments[key])

submenu = Menu(text, tearoff=0)
for p in sentiment_analysis.objects:
   submenu.add_command(label=p, command = lambda : onButtonPosObject(p), underline=0)
textmenu.add_cascade(label='Display positive sentiments', menu=submenu, underline=0)

我想我必须将标签 (p) 的值作为 onButtonPosObject() 函数的参数传递,我需要从每个对象的 positiveSentiments 字典中获取单词列表,但我得到的是空值,如 []。 如果有任何建议,我将不胜感激!

最佳答案

您需要在 lambda 中捕获 p 的当前值:

submenu.add_command(label=p, command = lambda p=p: onButtonPosObject(p), underline=0)

关于 python Tkinter : passing an argument to a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289128/

相关文章:

python - 在 tkinter 菜单中的帧之间切换

python - 如何通过添加百分号来自定义 tkinter Scale 小部件的标签

python - 在 scipy 优化中限制/最小化步长?

python tkinter接口(interface)如何创建一个新的显示txt文件

python - 有没有办法在 Tkinter 中使用功能区工具栏?

python - 我需要减慢 python tkinter 应用程序中的循环

python - pyautogui.locateCenterOnScreen() 返回 None 而不是坐标

python - Ubuntu/MacOS 看不到 RPLidar

python - 如何删除 Airflow 中的下游或上游任务依赖性

python - PyQT5 QGIS 对话框交互