xmanman

导航

 

一次在项目中封装tkinter的时候,在循环遍历生成按钮的时候,发现lambda的入参,总是最后一个,研究了好久终于找到了原因。记录一下,也希望能帮到别人

 

事故回放:简单写了个例子

 

 

 

解决方法:改成以下写法就可以了,

 

 

分析原因:

当使用lambda定义函数时,showFileFrm调用在定义函数时不会得到变量item的值。相反,它会形成一个闭包,这有点像对自己说“我应该寻找我的变量的值”。在我被召唤的时候“.当然,函数是在循环结束后调用的,所以在那个时候,我总是等于循环中的最后一个值。

 

感谢下面的兄弟提供参考:http://www.imooc.com/wenda/detail/572383

 

posted on   xmanman  阅读(670)  评论(1编辑  收藏  举报
努力加载评论中...
 
点击右上角即可分享
微信分享提示