避免重复代码的方法

2024-10-06 16:23:53 发布

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

我正在尝试使用tkinter显示图像。我注意到这里有重复的代码。我正在试图摆脱这些代码来显示图像。我的目标是不以离散的方式显示大量图像,而是以数量动态地显示它们。你知道吗

请帮忙谢谢。你知道吗

def __init__(self):
    Frame.__init__(self)
    self.master.title("Black Jack")
    blackjack = Blackjack()
    self.grid()

    self._playerCardImage = PhotoImage(file=str(blackjack._player._cards[0].fileName))
    self._playerCardLabel = Label(self, image = self._playerCardImage)
    self._playerCardLabel.grid(row=0, column=0)


    self._playerCardImage1 = PhotoImage(file=str(blackjack._player._cards[1].fileName))
    self._playerCardLabel1 = Label(self, image = self._playerCardImage1)
    self._playerCardLabel1.grid(row=0, column=1)

    self._dealerCardImage = PhotoImage(file=str(blackjack._dealer._cards[0].fileName))
    self._dealerCardLabel = Label(self, image = self._dealerCardImage)
    self._dealerCardLabel.grid(row=0, column=2)

    self._dealerCardImage1 = PhotoImage(file=str(blackjack._dealer._cards[1].fileName))
    self._dealerCardLabel1 = Label(self, image = self._dealerCardImage1)
    self._dealerCardLabel1.grid(row=0, column=3)

Tags: 代码图像imageselfinitcolumnfilenamelabel
1条回答
网友
1楼 · 发布于 2024-10-06 16:23:53

现在还不清楚你的模式到底是什么,但如果我怀疑是这样的话,下面的方法应该有用:

for index in range(<your range>):
    if index % 4 == 0:
        self._playerCardImage = PhotoImage(file=str(blackjack._player._cards[index].fileName))
        self._playerCardLabel = Label(self, image = self._playerCardImage)
        self._playerCardLabel.grid(row=0, column=index)

    elsif index %4 == 1:
        self._playerCardImage1 = PhotoImage(file=str(blackjack._player._cards[index].fileName))
        self._playerCardLabel1 = Label(self, image = self._playerCardImage1)
        self._playerCardLabel1.grid(row=0, column=index)
    ...

您应该能够使用index变量上的mod操作来计算行/列/文件索引。如果只有四个分支(如上面的示例所示),那么If语句中将有四个分支。你知道吗

相关问题 更多 >