python 3变量在另一个变量的名称中使用?

发布于 2024-10-26 20:43:18 字数 556 浏览 0 评论 0原文

在 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

这可能很简单,但我似乎无法通过谷歌找到我正在寻找的内容。

in python 3 (with tkinter) i have the following images:

SqImg1 = PhotoImage(file='SqImg1.gif')
SqImg2 = PhotoImage(file='SqImg2.gif')
SqImg3 = PhotoImage(file='SqImg3.gif')
SqImg4 = PhotoImage(file='SqImg4.gif')
...

i also have a function that needs to return one of those images based on a variable. so if the function determines var to be 1, it needs to return 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]

i would want the above to return SqImg3

this is probably simple, but i can't seem to find what im looking for with google.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜无邪 2024-11-02 20:43:18

你的错误马上就出现了:

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) ]

There's your mistake straight away:

SqImg1 = PhotoImage(file='SqImg1.gif')
SqImg2 = PhotoImage(file='SqImg2.gif')
SqImg3 = PhotoImage(file='SqImg3.gif')
SqImg4 = PhotoImage(file='SqImg4.gif')
...

should be:

SqImg = [
PhotoImage(file='SqImg1.gif'),
PhotoImage(file='SqImg2.gif'),
PhotoImage(file='SqImg3.gif'),
PhotoImage(file='SqImg4.gif'),
...
]

or even:

SqImg = [ PhotoImage(file='SqImg{}.gif'.format(i) for i in range(1, n) ]
疯到世界奔溃 2024-11-02 20:43:18

两个选项

  • 创建字典并将字符串映射到实际变量。例如,
    d = {}; d["boo"] = img3
  • 如果图像编号正确,请调用 eval() .. 例如,return eval("sqlimg%d" % var)

第一个选项可能是除非你有特殊情况,否则你正在寻找

Two options

  • Create a dictionary and map the strings to the actual variables. E.g.,
    d = {}; d["boo"] = img3
  • Call eval() if your images are numbered correctly.. e.g., return eval("sqlimg%d" % var)

The first option is probably what you're looking for unless you have special circumstances

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文