select/deselect Python 中的方法

select/deselect methods in Python

我正在阅读 Mark Lutz 的 Programming Python,我遇到了这段我不明白的代码。

buttons = []

def onpress(i):
    global state
    state = i
    for btn in buttons:
        btn.deselect()
    buttons[i].select()

我知道它在做什么,但我不知道这些 select 和 deselect 方法来自哪里。我以前从未见过这些列表方法(我和书中使用的是 Python 3)。这些是内置方法吗?他们做什么?我试着用我的 Google-fu 来解决这个问题,但无济于事。

http://www.java2s.com/Tutorial/Python/0360__Tkinker/Deselectforradiobuttonssimplysetsthebuttonsassociatedvaluetoanullstring.htm

所以快速 google,如果你这样做,这意味着你很可能使用 tkinter,在这种情况下,你在某处缺少相关代码。

那些方法 .deselect() 和 .select() 实际上是 tkinter Radiobuttons() 方法。如果你是教程崇敬 tkinter。 "from tkinter import *" 将导入那些 class。如果不是,我不知道为什么它会被断章取义。

但是这段代码所做的是,它需要 'i',这是您单击的按钮,然后它将 'state' 设置为 'i',从而使 'state' 'global' 覆盖最后一个 'state',然后它 deselects 所有按钮,selects 'i' 这是你的新选择。实际上,这意味着您只会 select 1 个按钮

如果您想知道为什么 state 是空字符串,那是因为空字符串是 tkinter 中的第一个按钮。当您传入一个新字符串时,它会给出新项目,例如 "I001" 或其他内容。