为了向自己介绍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()的需要。在
有人有什么想法吗?在