如何在Python中存储大量子数据并保持简便访问

0 投票
1 回答
45 浏览
提问于 2025-04-11 23:51

我想用Python制作一个开放世界的选择你自己冒险的文字游戏。我对Python还不是很熟悉,所以不太确定最好的做法是什么。我想存储很多不同物品的信息,比如盔甲、武器等等。我还想存储不同城镇的信息,以及里面的NPC(非玩家角色)。我该如何以一种简单易用、分类清晰的方式来存储这些信息,比如一把剑的伤害值等子数据呢?

我最初的想法是使用类。这样我可以做一些类似于

class goblin:
    health = 10

class items:
    class weapons:
        class ironSword:
            damage = 1
            
goblin.health -= items.weapons.ironSword

的事情。但是我觉得这样不太行,因为我需要这些物品像变量一样可以访问。这是因为我正在为玩家使用一个类,而这个类里有一个清单用来存放他们的物品。我想把这些物品存放在这个清单里,但我不太确定如何用类来做到这一点。

1 个回答

1

你把数据组织成类的方式挺好的。不过,你定义这些类的方式有点复杂。其实可以用一种更简单的方法,那就是使用 继承。如果你对 继承子类 这些概念不太了解,可以看看这位 Corey Schafer 的精彩视频。

你可以尝试这样做:


class Item:
    def __init__(self, name, description):
        self.name = name
        self.description = description

class Weapon(Item):
    def __init__(self, name, description, damage):
        super().__init__(name, description)
        self.damage = damage

class Armor(Item):
    def __init__(self, name, description, defense):
        super().__init__(name, description)
        self.defense = defense

然后你就可以根据这些类创建任意数量的 对象(你的项目),像这样:

iron_sword = Weapon("Iron Sword", "A basic iron sword.", damage=10)
machine_gun = Weapon("Machine Gun", "An automatic assault rifle.", damage=90)
leather_armor = Armor("Leather Armor", "Light armor made of leather.", defense=5)

撰写回答