Python 当我在附加到列表后运行view#u inventory函数时,附加项不会';不显示

Python 当我在附加到列表后运行view#u inventory函数时,附加项不会';不显示,python,list,python-2.7,class,instance,Python,List,Python 2.7,Class,Instance,在添加了add_inventory函数后,我对inventory实例进行了测试,该函数显示“Key”已添加到inventory列表的末尾,但是这两个Hero().view_inventory()打印出相同的结果,不包括Key。正如vaultah在评论中指出的那样,您正在创建三个独立的Hero实例。更改如下: class Character(object): def __init__(self): self.name = "" self.inventory

在添加了add_inventory函数后,我对inventory实例进行了测试,该函数显示“Key”已添加到inventory列表的末尾,但是这两个Hero().view_inventory()打印出相同的结果,不包括Key。

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

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

这里有3个不同的
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()