如何在Python中存储包含大量子数据的数据,同时保持轻松简单的访问

问题描述 投票:0回答:1

用Python制作一个开放世界、选择你自己的冒险的基于文本的游戏。对 python 有点陌生,所以我不确定最好的方法是什么。我想存储有关许多不同物品的信息,例如盔甲、武器等。我还想存储有关不同城镇及其中的 NPC 的信息。我如何以易于使用、排序的方式存储这些信息,所有这些信息都有自己的子数据,例如剑的伤害?

我的第一个想法是使用类。这样我就可以做类似的事情

class goblin:
    health = 10

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

但我认为这行不通,因为我需要可以访问这些项目,比如变量。这是因为我正在为玩家使用一个类,其中有一个库存列表。我希望能够将这些项目存储在上述列表中,但我不确定如何处理类。

python text
1个回答
0
投票

您在课堂上组织数据的方法很好。但是您正在以相当复杂的方式定义类。更好的选择是使用

inheritence
。如果您不熟悉
inheritence
subclasses
的概念,您可以观看 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

然后您可以从这些类中创建任意数量的

objects
(您的项目),如下所示:

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)
© www.soinside.com 2019 - 2024. All rights reserved.