【问题标题】:WxPython converting choice to number value TypeErrorWxPython将选择转换为数值TypeError
【发布时间】:2018-11-16 00:41:56
【问题描述】:

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

        # 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 转换为整数。如何避免出现该错误?

【问题讨论】:

    标签: python python-3.x wxpython wxwidgets


    【解决方案1】:

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

    替换

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

    有了这个

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

    【讨论】:

      【解决方案2】:

      我认为您执行该代码的方式没有任何优势。
      为什么不这样做呢:

      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()])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-12
        • 2017-01-21
        • 2021-07-08
        • 2019-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多