python 使用循环变量名定义数组_函数在Python中使用数组变量命名循环中的按钮...

为了向自己介绍Python,我决定复制Windows附带的基本计算器。通过使用vars()函数,我已经成功地解决了命名单个按钮的初始问题,这个问题是通过一个存储在数组中的变量的循环创建的(我知道,这有点混乱)。但是,当我在函数中封装循环时,这就不起作用了。在

数组:controls = [

["zer", "0", 0, 18, 150, 30, 70],

["one", "1", 1, 18, 115, 30, 35],

["two", "2", 2, 54, 115, 30, 35]

]

这是有效的:

^{pr2}$

当尝试调整其中一个按钮的状态时,将返回一个NameError:def setButtons(buttons)

for b in buttons:

vars()[b[0]] = Button(calc, text=b[1], command=lambda inp=b[2]:click(inp))

vars()[b[0]].place(x=b[3], y=b[4], height=b[5], width=b[6])

setButtons(controls)

我知道数组被传递给了函数,因为按钮仍然生成并表现良好。这正是我在使用vars()函数之前遇到的问题,所以我猜这将是范围界定的问题。我还应该注意到,我还没有研究字典的使用,我担心这可能会完全解决这个问题,并且消除使用vars()的需要。在

有人有什么想法吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值