python 练习 二
构造银行卡类
属性:
- 用户编码
- 信用卡授信额度
- 当前额度
- 单次刷卡上限
方法:
- 获取全部属性和值
- 修改授信额度
- 用户刷卡,刷卡金额小于单次刷卡上限,小于当前额度
类
import jsonclass BankCard():def __init__(self,userCode,lineOfCredit,timesMaxMoney):self.userCode = userCode #用户编码self.lineOfCredit = lineOfCredit #授信限额self.money = lineOfCredit #剩余金额self.timesMaxMoney = timesMaxMoney #单日刷卡上限def toString(self):objData = {'userCode':self.userCode,'lineOfCredit':self.lineOfCredit,'money':self.money,'timesMaxMoney':self.timesMaxMoney,} objJson = json.dumps(objData)return objJsondef setLineOfCredit(self,lineOfCredit):self.money = lineOfCreditdef changeMoney(self,money):#刷卡if money>self.timesMaxMoney:print("大于单日刷卡上限金额[{0}]".format(self.timesMaxMoney))return Falseif money>self.money:print("大于用户剩余金额[{0}]".format(self.money))return Falseself.money -= moneyprint("用户剩余金额:{0}".format(self.money))return True
调用
card1 = BankCard("0001",1000,10)
card1_json = card1.toString()
print(card1_json)card1.setLineOfCredit(500)
card1_json = card1.toString()
print(card1_json)card1.changeMoney(15)
card1.changeMoney(5)
输出
{"userCode": "0001", "lineOfCredit": 1000, "money": 1000, "timesMaxMoney": 10}
{"userCode": "0001", "lineOfCredit": 1000, "money": 500, "timesMaxMoney": 10}
大于单日刷卡上限金额[10]
用户剩余金额:495
构造天地银行信用卡类,继承银行信用卡类
增加属性
- 天地银行信用卡积分
- 优惠商品列表
重写方法
- 传入商品id,若商品id在优惠商品列表中,则商品打九五折
- 每消费10元,积分增加1。不足10元积分为0。
增加方法
- 获取用户积分
- 设置优惠商品
类
class TDBankCard(BankCard):def __init__(self,userCode,lineOfCredit,timesMaxMoney):super().__init__(userCode,lineOfCredit,timesMaxMoney)self.integral=0self.goods={}def changeMoney(self,money,goodid):# 刷卡if money>self.timesMaxMoney:print("大于单日刷卡上限金额[{0}]".format(self.timesMaxMoney))return Falseif money>self.money:print("大于用户剩余金额[{0}]".format(self.money))return Falseif self.goods.get(goodid):price = self.goods.get(goodid)if money<price:print("小于商品金额[{0}]".format(price))return Falsemoney = round(price*0.95,2)self.money -= moneyprint("用户消费金额:{0}".format(money))print("用户剩余金额:{0}".format(self.money))self.integral += money//10return Truedef getIntegral(self):return self.integraldef setgoods(self,goodid,price):if not self.goods.get(goodid):self.goods[goodid] = priceprint(self.goods)
调用
tdcard = TDBankCard("0002",10000,100)
tdcard.setgoods("00001",50.3)
tdcard.setgoods("00002",10.5)
tdcard.setgoods("00003",90)
tdcard.changeMoney(10,"00003")
print(tdcard.getIntegral())
tdcard.changeMoney(20,"00002")
print(tdcard.getIntegral())
tdcard.changeMoney(100,"00003")
print(tdcard.getIntegral())
输出
{'00001': 50.3}
{'00001': 50.3, '00002': 10.5}
{'00001': 50.3, '00002': 10.5, '00003': 90}
小于商品金额[90]
0
用户消费金额:9.97
用户剩余金额:9990.03
0.0
用户消费金额:85.5
用户剩余金额:9904.53
8.0