这是一个相当简单的问题
我知道你可以做到:
foo = 1,
self.card1 = "This is card number %s." % (foo)
但我试着把函数给出的变量赋给名字本身:
def card(foo):
self.foo = foo
self.usrCrdImg%self.foo = Image.open(self.crdStk[randint(1, 50)])
self.usrCrdBg%self.foo = ImageTk.PhotoImage(usrCrdImg%self.foo)
self.usrCrd%self.foo = tkinter.Label(root, image=usrCrdBg%self.foo)
self.usrCrd%self.foo.image = self.usrCrdBg%self.foo
card(1)
#Should Execute like this
def card(1):
self.usrCrdImg1 = Image.open(self.crdStk[randint(1, 50)])
self.usrCrdBg1 = ImageTk.PhotoImage(usrCrdImg1)
self.usrCrd1 = tkinter.Label(root, image=usrCrdBg1)
self.usrCrd1.image = self.usrCrdBg1
一旦我得到了这个问题的答案,我还有一个问题要问。你知道吗
import tkinter
import winsound
from tkinter import *
from PIL import Image, ImageTk
from random import randint, randrange
class CardGame(tkinter.Frame):
def __init__(self, root):
tkinter.Frame.__init__(self, root)
#define variables for cards
self.crdImg = []
usrStk = None
cpuStk = None
#define card images
i = 1
while i < 57:
i = i + 1
self.crdImg.append('img/cards/%s.png' % (i - 1))
usrStk = self.crdImg[54]
cpuStk = self.crdImg[55]
def debug(card):
self.card = card
self.usrCrdImg%self.card = Image.open(self.crdStk[randint(1, 50)])
self.usrCrdBg%self.card = ImageTk.PhotoImage(self.usrCrdImg%self.card)
self.usrCrd%self.card = tkinter.Label(root, image=self.usrCrdBg%self.card)
self.usrCrd%self.card.image = self.usrCrdBg%i
def card(self):
###
self.usrStk1 = self.crdImg[54]
self.cpuStk1 = self.crdImg[55]
##
self.usrCrdImg1 = Image.open(self.usrStk1)
self.usrCrdBg1 = ImageTk.PhotoImage(self.usrCrdImg1)
self.usrCrd1 = tkinter.Label(root, image=self.usrCrdBg1)
self.usrCrd1.image = self.usrCrdBg1
##
self.cpuCrdImg1 = Image.open(self.cpuStk1)
self.cpuCrdBg1 = ImageTk.PhotoImage(self.cpuCrdImg1)
self.cpuCrd1 = tkinter.Label(root, image=self.cpuCrdBg1)
self.cpuCrd1.image = self.cpuCrdBg1
你想做的是最糟糕的解决问题的方法。一般来说,您不应该尝试动态生成变量名。你知道吗
最简单的解决办法是使用字典。像这样:
不过,更好的解决方案是将“card”作为类的实例。然后,可以将这些属性存储为类的属性:
如果您绝对必须创建一个变量,例如Tkinter按钮,请使用以下命令:
基本格式:
exec(var + '=' + varvalue)
如果只需要定义变量名,只需执行
exec('varname = ' + varvalue)
相关问题 更多 >
编程相关推荐