# created by swy"""
solutions to beginning python
"""classFridge:def__init__(self, items={
}):"""
Optionally pass in an initial dictionary of items
:param items:
"""iftype(items)!=type({
}):raise TypeError("Fridge requires a dictionary but was given %s"%type(items))
self.items = items
returndef__add_multi(self, food_name, quantity):if food_name notin self.items:
self.items[food_name]=0
self.items[food_name]= self.items[food_name]+ quantity
defadd_one(self, food_name):iftype(food_name)!=type(""):raise TypeError("add_one requires a string, given a %s"%type(food_name))else:
self.__add_multi(food_name,1)returnTruedefadd_many(self, food_dict):iftype(food_dict)!=type({
}):raise TypeError("add_many requires a dictionary, got a %s"% food_dict)for item in food_dict.keys():
self.__add_multi(item, food_dict[item])returndefhas(self, food_name, quantity=1):return self.has_various({
food_name: quantity})defhas_various(self, foods):try:for food in foods.keys():if self.items[food]< foods[food]:returnFalsereturnTrueexcept KeyError:returnFalsedef__get_multi(self, food_name, quantity):try:if self.items[food_name]isNone:returnFalseif quantity > self.items[food_name]:returnFalse
self.items[food_name]= self.items[food_name]- quantity
except KeyError:returnFalsereturn quantity
defget_one(self, food_name):iftype(food_name)!=type(""):raise TypeError("get_one requires a string, given a %s"%type(food_name))else:
result = self.__get_multi(food_name,1
《python基础教程》答案(第七章)Fridge.py# created by swy"""solutions to beginning python"""class Fridge: def __init__(self, items={}): """ Optionally pass in an initial dictionary of items :param items: """ if type(i