【发布时间】:2019-09-10 01:59:09
【问题描述】:
我正在尝试编写一个简单的自动售货机。 我有包含项目的 Container 类,而 Items 类包含奖品和金额等信息。 ID 标识项目。每个调用 add item 都会将 ID 加一,因此每个 item 都是唯一的。 我想获得给定ID的奖品。 例如:我添加项目,它的 ID=30,我给出 ID,它返回它的奖品。
我尝试了类似的方法,但它不起作用:
from Item import Item
class Container:
id = 30
def __init__(self, objects=None):
if objects is None:
objects = {}
self.objects = objects
def add_object(self, obj: Item):
self.objects.update({id: obj})
Container.id = container.id + 1
def get_length(self):
return len(self.objects)
def find_price_of_given_id(self, id):
# return self.objects.get(id).get_price()
pass
Cola = Item(20)
print(Cola.get_amount())
container = Container()
container.add_object(Cola)
print(container.objects.items())
物品类别:
class Item:
def __init__(self, price,amount=5):
self.amount = amount
self.price = price
def get_price(self):
return self.price
def get_amount(self):
return self.amount
我不知道为什么print(container.objects.items()) 也返回dict_items([(<built-in function id>, <Item.Item object at 0x00000000022C8358>)]),为什么不 ID = 30 + Item 对象
【问题讨论】:
标签: python dictionary