Python 获取循环中每个条目的内容

Python 获取循环中每个条目的内容,python,tkinter,printing,tkinter-entry,Python,Tkinter,Printing,Tkinter Entry,我将tkinter与Python结合使用,从用户那里获得一个查询,并在循环中打印每个条目的内容。然而,只有最后一个条目的文本被打印出来。我应该怎么做来解决这个问题 for i in range(len(labels)): label=Label(V,text=i, relief=RIDGE,width=8) label.pack() label.grid(row=counter,column=1,padx=5,pady=5) entry = Entry(V, re

我将tkinter与Python结合使用,从用户那里获得一个查询,并在循环中打印每个条目的内容。然而,只有最后一个条目的文本被打印出来。我应该怎么做来解决这个问题

for i in range(len(labels)):
    label=Label(V,text=i, relief=RIDGE,width=8)
    label.pack()
    label.grid(row=counter,column=1,padx=5,pady=5)
    entry = Entry(V, relief=SUNKEN,width=30,justify=RIGHT)
    entry.pack()
    entry.grid(row=counter,column=0,padx=10,pady=5)
    def showevent (event):
        print entry.get()

    entry.bind("<Return>", showevent)
范围内的i(len(标签)):
标签=标签(V,文字=i,浮雕=脊,宽度=8)
label.pack()
label.grid(行=计数器,列=1,padx=5,pady=5)
入口=入口(V,浮雕=凹陷,宽度=30,对正=右侧)
entry.pack()
entry.grid(行=计数器,列=0,padx=10,pady=5)
def showevent(事件):
打印条目。get()
entry.bind(“,showevent)

这是对闭包的常见误解。基本上,
条目
是在函数运行时查找的,而不是定义的。简单的解决方法是将其设为默认参数:

def showevent(event,entry=entry):
    print entry.get()

这是因为默认参数是在创建函数时求值的,而不是在调用函数时求值的,所以您总是可以得到所需的条目。

这是对闭包的常见误解。基本上,
条目
是在函数运行时查找的,而不是定义的。简单的解决方法是将其设为默认参数:

def showevent(event,entry=entry):
    print entry.get()
这是因为默认参数是在创建函数时计算的,而不是在调用函数时计算的,所以您总是可以得到所需的条目