可以请任何人帮助我解决我的问题。我是 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/