擅长:python、mysql、java
<p>简单的方法是将<code>item</code>字符串传递给<code>command</code>回调,但必须小心操作。一种方法是使<code>item</code>字符串成为<code>lambda</code>函数的默认参数。它必须是一个默认参数,以便在定义<code>lambda</code>时,<code>item</code>与该参数绑定。如果我们只是<code>lambda : func(item)</code>,那么每个按钮都将打印列表中的最后一项。发生这种情况是因为在这种情况下,当调用回调时,Python会查找<code>item</code>的<em>current</em>值。在</p>
<pre><code>import tkinter as tk
film = ['Woezel & Pip Op zoek naar de Sloddervos!', 'The White Snake',
'Proof of Life', 'Rise of the Planet of the Apes', 'Mona Lisa Smile',
'2 Guns', 'Max Payne', 'De eetclub']
def func(item):
print(item)
root = tk.Tk()
for item in film:
tk.Button(master=root, text=item, command=lambda s=item: func(s)).pack()
root.mainloop()
</code></pre>
<hr/>
<p>注意在我的代码中我是如何做到的。。。做那个任务没有意义。首先,我们没有在任何地方保存这些小部件,但是更重要的是,<code>.pack</code>返回{<cd11>},这样做</p>
^{pr2}$
<p>实际上,将<code>button</code>设置为<code>None</code>,而不是按钮小部件。在</p>