如何使用列表项作为变量?

How to use list items as variables?

我需要在 Tkinter 中使用名为 'apple' 'banana' 和 'orange' 的变量。

在我的真实脚本中,它们的名称不同,而且我还有很多,这会使手动输入的工作量很大:

apple.delete(0, END)    
banana.delete(0, END)

等等

我想使用列表

lst = ['apple', 'banana', 'orange']

这样我就可以使用:

for i in lst:
    i.delete(0, END)

但这给了我错误:

AttributeError: 'str' object has no attribute 'delete'

如何将这些列表项用作操作中的变量?

在您的代码中的某个地方,您的代码执行以下操作:

apple = Fruit("red")
banana = Fruit("yellow")
grape = Fruit("purple")
# etc

(我不确定这些东西的类型是什么,也不熟悉 tkinter,但我认为它们是某种对象。对于这个概念的目的而言,实际上并不重要。 )

您不想存储实际的字符串 "apple"、"banana" 等,而是希望将这些 对象 放入列表中:

fruits = [Fruit("red"), Fruit("yellow"), Fruit("purple")]

现在您可以:

for fruit in fruits:
    fruit.delete(0, END)

您可以将小部件保存到列表中。它们是 python 个对象,因此您可以像使用任何其他对象一样使用它们。

apple = tk.Text(...)
banana = tk.Text(...)
orange = tk.Text(...)
...
lst = [apple, banana, orange, ...]
...
for widget in lst:
    widget.delete(0, "end")