如何在Python中存储大量子数据并保持简便访问
我想用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)