0

この方法で何が間違っているのか理解できません。クラス内の別のメソッドから次のように呼び出されます。

def equip_menu(self): # this is not the actual method, but equip_choice is used only in the following lines
    #snipped code
    equip_choice = Input("Input the number of the item you want to equip:\n")
    self.select_from_list_equip(equip_choice) 

これはメソッドスローエラーです:

def select_from_list_equip(self, equip_choice): # Trying to select item in list self.backpack
    item_to_equip = self.backpack[equip_choice]
    print("*DEBUG* Equip chosen:", item_to_equip.name)
    playeritems.equip(item_to_equip)

エラーが発生します:

"classes.py", line 109, in select_from_list_equip
    item_to_equip = self.backpack[count]
TypeError: list indices must be integers or slices, not str"

そのため、小数なしで数字を入力しようとしてもエラーが発生しますが、equip_choice を整数にしようとしました。リストのインデックスとして文字列を使用しようとしているわけではないと私は考えていますが、明らかに間違っています。そこで、equip_choice を次のような整数に強制しようとしました。

def select_from_list_equip(self, equip_choice):
    int(equip_choice)
    item_to_equip = self.backpack[equip_choice]
    print("*DEBUG* Equip chosen:", item_to_equip.name)
    playeritems.equip(item_to_equip)

しかし、私はまだ同じ同じエラーが発生します。equip_choice の値をリストのインデックスとして使用できないのはなぜですか? 私は盲目である非常に明白で基本的な何かを見逃しているに違いありませんか?

4

1 に答える 1