zoukankan      html  css  js  c++  java
  • tkinter在循环中创建按钮以传递命令参数,闭包的坑

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

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

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

    分析原因:

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

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

    欢迎对it热情的同学,加qq进行技术讨论; QQ:850922253
  • 相关阅读:
    Safari-IoS调试
    前端加密技术
    gulp入门
    xss攻击
    xml 解析
    python 基本语法
    python初识
    字节
    神奇的算式
    linux-虚拟机安装
  • 原文地址:https://www.cnblogs.com/zhangwensi/p/11495822.html
Copyright © 2011-2022 走看看