Tkinter的事件处理解决方法

Tkinter的事件处理
from Tkinter import *
root=Tk()
k1=Label(root,text='333')
def p(a):
  print 'aaaaaa',a.cget('text')
k1.bind('<Button>',p(k1))
k1.grid()
root.mainloop()

我想点一下LABEL就打印一次,请问错在哪里?

------解决方案--------------------
1:回调的意思,就是tk或系统看时机去呼叫执行函数,所以你只要提供定义好的函数就可以,实际在你的代码块里也没办法确定调用的时机地点。函数参数上会有某种约定,好像tk是没办法另传多的参数,可以变通用个全局之类的变量来保存新信息,函数里直接读取应用。
2:b=a()就是调用执行函数a,返回值赋给b。若b=a这样并没有执行函数a,只是让b也变成a,后头如果b()就会一样执行函数a。
3:你主动调用给一个窗口类对象,那原本写法是没问题。但如1点所说,当作回调函数时,参数有某种约定,tk就是塞给函数一个事件对象,所以函数就得要配套来写...