WxPython将选项转换为数值类型

2024-03-29 10:44:53 发布

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

所以我想这是一个相当简单的问题,我只是不理解错误。这是我当前的代码:

        # SINGLE CHOICE INPUT
        choices = ["Auto", "Manual", "Manual (code only)"]
        chooseOneBox = wx.SingleChoiceDialog(None, "Setup / Opsætning", "Setup / Opsætning", choices)

        if chooseOneBox.ShowModal() == wx.ID_OK:
            setupChoice = choices.index[chooseOneBox.GetStringSelection()] + 1
            if setupChoice == 1:
                print(choices[setupChoice]-1)
            elif setupChoice == 2:
                print(choices[setupChoice]-1)
            print(choices[setupChoice])

所以我有一个列表choices,它包含了一系列选项,这些选项在chooseOneBox中正确显示。尝试时:
setupChoice = choices.index[chooseOneBox.GetStringSelection()] + 1我得到以下错误:'builtin_function_or_method' object is not subscriptable

出于简单的原因,我想将字符串从chooseOneBox转换为整数。如何避免出现错误


Tags: 代码indexif选项错误setupmanualops
2条回答

indexlist的一个函数,它返回项目出现的第一个索引

替换

choices.index[chooseOneBox.GetStringSelection()] + 1

用这个

choices.index(chooseOneBox.GetStringSelection()) + 1

我看不出您执行代码的方式有什么好处。
为什么不改为:

choices = ["Auto", "Manual", "Manual (code only)"]
chooseOneBox = wx.SingleChoiceDialog(None, "Setup / Opsætning", "Setup / Opsætning", choices)

if chooseOneBox.ShowModal() == wx.ID_OK:
    setupChoice = choices.index(chooseOneBox.GetStringSelection())
    print(choices[setupChoice])

或者更直接地说,使用GetSelection()返回所选项目的索引:

choices = ["Auto", "Manual", "Manual (code only)"]
chooseOneBox = wx.SingleChoiceDialog(None, "Setup / Opsætning", "Setup / Opsætning", choices)

if chooseOneBox.ShowModal() == wx.ID_OK:
    print(choices[chooseOneBox.GetSelection()])

相关问题 更多 >