0
我正在嘗試編寫RPG遊戲,並堅持如何使用單一唯一ID調用物品,怪物,任務等來獲取所有數據。這基本上是基於this Code Review question的最佳答案。使用唯一ID(python)將商品添加到廣告資源中
與其將所有數據傳遞給Item
類,我想調用一個方法或函數,它包含所有項目的字典,然後根據單個唯一ID將數據傳遞到Item
。
相關的代碼我現在有如下(所有代碼都可以找到here):
inventory.add_item(Item(ListItem.list(1))) #The 1 is a placeholder to specifically get the sword.
class Inventory(object):
def __init__(self):
self.items = {}
def add_item(self, item):
self.items[item.name] = item
class Item(object):
def __init__(self, name, attack, armor, cost, quantity, description):
self.name = name
self.attack = attack
self.armor = armor
self.cost = cost
self.quantity = quantity
self.description = description
class ListItem(object):
# This is a database to hold all the games loot/items
def __init__(self):
# What goes here?
def list(self, itemid):
# Probably don't even need this here? Can it go under __init__?
all_items = {
1: {"name": "Sword", "desc": "A rusty looking sword", "dmg": 5, "arm": 1, "val": 10},
}
return list(all_items[itemid].values())
您似乎將ListItem.list作爲一個**類方法**,因此您不一定需要* ListItem .__ init__'中的* anything *。然而,我不清楚你想要達到什麼目的。 – jonrsharpe
爲什麼ListItem()首先是一個類?除非我讀錯了,它的意思是嚴格地說是一個**行爲**,在這種情況下,一個類可能不適合它。在我看來,'list'會更適合作爲'Inventory',FWIW的一種方法。 –
感謝迄今爲止的答案。我是編程新手,所以試圖理解這些概念。澄清我想達到的目標: 而不是當玩家拿起物品並打電話給inventory.add_item(物品('劍',10,1,10,1,一把生鏽的長劍)) 我想'inventory.add_item(Item(這裏唯一的ID引用所有將數據傳遞給Item類的數據)。) –