将变量值从另一个文件更改为类

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

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

我有一个名为player py的文件,其中包含变量player_weapon = items.WBrokenSworditems.WBrokenSword代表:

class Weapon(Item):
def __init__(self, desc, name, usable, value, damage):
    super().__init__(desc=desc,
                     name=name,
                     usable=usable,
                     value=value)
    self.damage = damage

def __str__(self):
    return "\n{}\n{}\nValue: {}\nDamage: {}\n".format(self.name, self.desc, self.value, self.damage)

class BrokenSword(Weapon):

    def __init__(self):
        super().__init__(name="Espada Danificada",
                         desc="Uma espada pouco resistente.",
                         value=1,
                         usable=0,
                         damage=1)
WBrokenSword = BrokenSword()

combat.py中,我有一个:

player_damage = player.player_weapon.damage
enemy_health -= player_damage

这个很好用。在inventory.py中,我有一个:

Inv = [items.WRustySword]
print(Inv)
invaction = input("Which item do you want to use?")
intaction = int(invaction)
player.equip(intaction)

player.equip()表示:

def equip(what)
    import inventory
    player_weapon = inventory.Inv[what]
    return player_weapon  # just for testing

它返回正确的信息(WRustySwordWBrokenSword类似,但数字不同),但我得到以下错误:

TypeError: list indices must be integers or slices, not Rusty Sword

我已经试着修复这个问题两天了,我甚至改变了代码好几次,在互联网上搜索,什么都没有用。如何使player.player_weapon成为items.WRustySword?我希望我提供了足够的信息,但如果你需要的话,我可以提供更多


Tags: namepyselfinitvaluedefitemsdesc