当我 运行 view_inventory 函数追加到列表后,追加项不显示

When I run the view_inventory function after appending to the list, the appending item doesn't show

class Character(object):

    def __init__(self):
        self.name = ""
        self.inventory = []

    def add_inventory(self, item):
        self.inventory.append(item)

    def view_inventory(self):
        for i in range(len(self.inventory)):
            print "%r. %s" % (i+1, self.inventory[i])


class Hero(Character):

    def __init__(self):
        self.name = ""
        self.inventory = ["Torch", "Wrench", "Laser Cannon"]

Hero().view_inventory()
Hero().add_inventory("Key")
Hero().view_inventory()

我在使用 add_inventory 函数附加到清单实例后测试了清单实例,该函数显示 "Key" 添加到清单列表的末尾,但是 Hero().view_inventory() 打印出相同的结果,但不包括 Key。

正如 vaultah 在评论中指出的那样,您正在创建三个单独的 Hero 实例。变化如下:

hero = Hero()  # create one Hero instance
hero.view_inventory()  # and make the method calls on this very instance
hero.add_inventory("Key")
hero.view_inventory()