Python 未将元素添加到字典-RPG项目系统
我在我的RPG中实现了一个库存系统,我试图让它给我项目名称、重量、项目数量等。我在获取项目数量方面遇到了问题。这是我的代码Python 未将元素添加到字典-RPG项目系统,python,Python,我在我的RPG中实现了一个库存系统,我试图让它给我项目名称、重量、项目数量等。我在获取项目数量方面遇到了问题。这是我的代码 class Item(): def __init__(self, name, damage, armor, weight, value, itype, rarity): self.name = name self.damage = damage self.armor = armor self.weigh
class Item():
def __init__(self, name, damage, armor, weight, value, itype, rarity):
self.name = name
self.damage = damage
self.armor = armor
self.weight = weight
self.value = value
self.itype = itype
self.rarity = rarity
class Inventory():
def __init__(self):
self.items = {}
def add_item(self, item):
self.items[item.name] = item
def print_items(self):
print('\t'.join(['Name', 'Atk', 'Arm', 'Kg', 'Val', 'Type', 'Rarity']))
for item in self.items.values():
print('\t'.join([str(x) for x in [item.name, item.damage, item.armor, item.weight, item.value, item.itype, item.rarity]]))
Items = {
'dragonbane': Item('Dragon bane', 60, 0, 5, 1000, 'Weapon', '.oOo. LEGENDARY .oOo.'), # Name, Damage, Armour, Weight, Type, Rarity
'trainingsword': Item('Training Sword', 2, 0, 5, 10, 'Weapon', '[ Common ]')}
inventory = Inventory()
inventory.add_item(Items['dragonbane']
inventory.print_items()
输出:
Name Atk Arm Kg Val Type Rarity
Dragon bane 60 0 5 1000 Weapon .oOo. LEGENDARY .oOo.
但如果我加上两个龙鞭,它只会打印一次龙鞭。我根本不知道如何添加一个系统来计算玩家拥有一件物品的数量
提前感谢:D您最好使用和UID唯一ID,而不是项目名称作为项目的标识符 又例如:
def get_uid():
return random.randint(123456789,987654321)
#here you need to check also for already existing numbers - it's just an example
self.items[get_uid()] = item
在项目构造中,只需添加: self.uid=randint1,9999999
*PS:别忘了从random import randint导入顶部的random模块。您使用的是一个dict,其键是项目名称。这意味着每个名称只能有一项。如果您希望多个项目具有相同的名称,则不要使用dict或使用不同的唯一键。@TomKarzes谢谢!我一直在尝试检测元素是否存在,然后将数字放入字典中。这可能吗?不要使用这个get\u uid函数。这完全没有必要。如果需要唯一的id,可以使用idobject,它是一个内置函数。或者您可以使用类实例本身作为dict键,即d[object]=object。事实上,你可能只需要一个列表——不清楚数据是如何被访问的,但是如果你只需要能够遍历它,那么一个列表就足够了。