【问题标题】:When I run the view_inventory function after appending to the list, the appending item doesn't show当我在附加到列表后运行 view_inventory 函数时,附加项目不显示
【发布时间】:2016-08-25 01:16:39
【问题描述】:
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 函数附加到库存实例后,我已经测试了库存实例,该函数显示“密钥”已添加到库存列表的末尾,但是 Hero().view_inventory() 都打印出相同的结果,没有密钥包括在内。

【问题讨论】:

  • 你有 3 个不同的 Hero 实例。

标签: python list python-2.7 class instance


【解决方案1】:

正如 vaultah 在 cmets 中所指出的,您正在创建三个单独的 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多