在Python3中将元素传递给多个函数

2024-09-30 16:33:47 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在开发一个程序,在一副牌中洗牌,并在用户点击“交易”按钮时返回一张牌的图片。但是我试图将fileNamedeal函数传递到refreshImages函数,但我似乎无法让它工作。想知道是否有人能告诉我怎么做,并解释为什么。谢谢

def deal(self):
    card = self.deck.deal()
    self.stateLabel["text"] = str(card)
    fileName = "DECK/" + str(card.rank) + card.suit[0] + ".gif"
    self.refreshImages(fileName)
    if len(self.deck) == 0:
        self.dealBtn["state"] = "disabled"

def shuffle(self):
    card = self.deck.shuffle()
    fileName = "DECK/" + str(card.rank) + card.suit[0] + "gif"
    self.refreshImages(fileName)
    if len(seld.deck) == 0:
        self.dealBtn["state"] = "disabled"

def refreshImages(self):
    """Updates the images in the window."""
    self.image = PhotoImage(file = fileName)
    self.cardLabel1["image"] = self.image

Tags: 函数imageselfifdefcardfilenamegif
1条回答
网友
1楼 · 发布于 2024-09-30 16:33:47

由于deal方法使用文件名作为参数调用refreshImages方法,因此refreshImages方法应使用此类参数声明;否则调用方的局部变量fileName将不会神奇地传递给被调用的方法:

def refreshImages(self, fileName):
    """Updates the images in the window."""
    self.image = PhotoImage(file = fileName)
    self.cardLabel1["image"] = self.image

相关问题 更多 >