我正在为我在 tkinter 和 python 中的需要编写一个程序。单击按钮时,getParameters 函数应在循环中将数组的值与字典进行比较。如果数组的某个值与字典的键匹配,则从字典中调用该键的函数。但事实上,程序的工作方式是程序调用字典中的所有函数,而不需要循环参与。请告诉我如何解决它。请不要注意程序界面稀少的事实。这是故意这样做的,以便可以看到问题的本质。
from tkinter import *
win2 = Tk()
def receive_of_word():
param = "55"
return param
def word(param):
x = 5
print(x)
return x
def word_2(param):
y = 10
print(y)
return y
def getParameters():
ex ={
"xx": word(receive_of_word()),
"yy": word_2(receive_of_word()),
}
a = ["xx", "zz"]
for i in a:
if i in ex:
ex[i]
win2.title('Программа')
win2.minsize(width = 600, height = 600)
win2.maxsize(width = 600, height = 600)
button2 = Button(win2, text = "Считать текст", command = getParameters, width = 20, height = 3, font = "Arial 8", bg = "#edf3fc", foreground = "#000000", activebackground = "#ffffff", relief = RAISED)
button2.place(relx = 0.35, rely = 0.56)
button2.bind()
mainloop()
这是因为在您声明字典的地方,您已经在调用这些函数。为了不调用函数,而是将它们转移到某个地方,不带括号,只写名字。在需要调用它们的地方 - 已经写了括号。并且由于
param某种原因,您的参数根本没有在wordand函数中使用word_2,但在这种情况下它不会影响结果。