在python 3中(使用tkinter)我有以下图像:
SqImg1 = PhotoImage(file='SqImg1.gif')
SqImg2 = PhotoImage(file='SqImg2.gif')
SqImg3 = PhotoImage(file='SqImg3.gif')
SqImg4 = PhotoImage(file='SqImg4.gif')
...
我还有一个需要根据变量返回其中一个图像的函数。所以如果函数确定var为1,则需要返回SqImg1 ...
def returnImage():
list = ['ale', 'boo', 'boo', 'cat', 'doe', 'boo', 'eel']
var = 0
for item in list:
if item == 'boo':
var += 1
return SqImg[var]
我希望上面的内容返回SqImg3
这可能很简单,但我似乎无法找到我正在寻找的谷歌。
答案 0 :(得分:2)
你的错误就在眼前:
SqImg1 = PhotoImage(file='SqImg1.gif')
SqImg2 = PhotoImage(file='SqImg2.gif')
SqImg3 = PhotoImage(file='SqImg3.gif')
SqImg4 = PhotoImage(file='SqImg4.gif')
...
应该是:
SqImg = [
PhotoImage(file='SqImg1.gif'),
PhotoImage(file='SqImg2.gif'),
PhotoImage(file='SqImg3.gif'),
PhotoImage(file='SqImg4.gif'),
...
]
甚至:
SqImg = [ PhotoImage(file='SqImg{}.gif'.format(i) for i in range(1, n) ]
答案 1 :(得分:0)
两个选项
d = {}; d["boo"] = img3
return eval("sqlimg%d" % var)
除非您有特殊情况,否则第一个选项可能就是您正在寻找的选项