Python 3:如何在循环中放置递增文字?

2024-10-03 15:34:04 发布

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

我想在一个循环中设置一个按钮列表,每个按钮的命令调用一个具有不同值的函数

for rank in range(21):
    self._rankButton.append(Button(self, text = "Rank " + str(rank),
        command = self._setDice(rank))

self._rankButton[0] should call self._setDice(0)
self._rankButton[1] should call self._setDice(1)
.
.
.
self._rankButton[20] should call self._setDice(20)

我实现这一点的唯一方法是在循环外部单独配置按钮


Tags: 函数in命令self列表forrangebutton
1条回答
网友
1楼 · 发布于 2024-10-03 15:34:04

不知道Button是什么,但看起来它需要调用一个函数。因此,您必须创建该函数:

...., command=lambda r=rank: self._setDice(r)

这应该是可行的,不幸的是,它不是很好的可读性。第一个lambda表示makefunction。其次,后期绑定有一个问题,这就是为什么我们必须引入r,因为rank在调用它时将有另一个值

相关问题 更多 >