定义了一个CandleShop类:
1)自定义一个异常类OutOfStack
2)请修改实例buy当购买蜡烛的量超出库存时会抛出OutOfStack异常
3)想办法在主程序中加一个代码会引起程序抛出OutOfStack
4)捕获该异常,并输出异常的具体信息
class CandleShop:
name = "Here's a Hot Tip: Buy Drip Candles"
def __init__(self, stock):
self.stock = stock
def buy(self, color):
self.stock[color] = self.stock[color] - 1
candle_shop = CandleShop({'blue': 6, 'red': 2, 'green': 0})
candle_shop.buy('blue')
class OutOfStackError(Exception):
def __init__(self,msg):
self.msg=msg
def __str__(self):
return self.msg
for i in range(3):
try:
color=input('请输入你想要的颜色的蜡烛:')
if color in candle_shop.stock.keys():
if candle_shop.stock[color] <= 0:
raise OutOfStackError('%s的蜡烛已经卖完了,如果需要请买其他颜色的!' % color)
else:
candle_shop.stock[color] = candle_shop.stock[color] - 1
print('购买成功!')
# print(candle_shop.stock)
else:
print('很抱歉你需要的蜡烛颜色我们不售卖!')
except OutOfStackError as e:
print('OutOfStackError',e)



