首页 > 解决方案 > 创建基于文本的 RPG 库存系统 (python)

问题描述

只是想对我在 Python 中创建的基于文本的 RPG 的当前虽然非常薄的骨架发表意见。

class Item(object):
    def __init__(self, item):
    if(key in Loot):
        self.item = Inventory[key]
    else:
        self.item = None
        print('No loot obtain for that decision')

    def get_item(self):
        return self.item

    def item(self):
        return str(self.item)

class Inventory(object):
    def __init__(self):
        self.inventory = []

    def add_item(self, item):
        self.inventory.append(item)
        return self.inventory

    def added_loot(self):
        print('Congrats, you have obtained a/an' + str(self.item))

当我运行 added_loot 方法时,我当前的代码将我的库存字典显示为值。我想看看是否有任何方法可以重新制作此代码并将字典中的键用作我的 self.inventory 并随机播放这些代码?因此,当我打印出 str(self.item) 时,它将打印出实际的键,而不是字典中的值。

标签: pythonclassdictionaryobject

解决方案


您可能需要考虑改写它,或者改为查看Code Review。您的问题似乎并没有要求解决特定问题,特别是您的第一行说您只想对您的代码发表意见。Stack Overflow 并不是真正适合这种情况的地方。

作为对最后似乎是主要问题的回答,您已经定义了一个 Item() 类,因此您可以考虑添加一个__str__or__repr__方法。print()然后,您可以创建一个实例并通过简单的调用打印您之前在所述方法中设置的任何字符串。

test = Item()
print(test)

当然,这需要修复__init__缩进不正确且没有属性的方法。


推荐阅读