# -*- conding:utf-8 -*- ''' 类: 创建一个银行类 属性: 一个属于银行的类属性 用来存储所有银行的开户信息,包含卡号、密码、用户名、余额 (外界不能随意访问和修改。开户时要进行卡号验证,查看卡号是否已经存在) 每个对象拥有 卡号,密码,用户名,余额 (外界不能随意访问和修改。) 方法:银行类拥有 查看本银行的开户总数 查看所有用户的个人信息(包含卡号,密码,用户名,余额) 每个对象拥有 实例化对象的时候传入相关参数 初始化对象及类属性 取钱(需要卡号和密码验证) 通过验证卡号和密码对个人的余额进行操作,如果取钱的金额大于余额,则返回余额不足 存钱(需要卡号和密码验证) 通过验证卡号和密码对个人的余额进行操作,返回成功 查看个人相信信息(需要卡号和密码验证) 返回个人的卡号、用户名、余额信息 ''' class Bank: #创建一个类属性, __Users = { } #字典 用来存储所有银行的开会信息,包含卡号、密码、用户名、余额 def __init__(self,carId,userName,pwd,balance): if carId not in Bank.__Users: Bank.__Users[carId]={'userName':userName,'pwd':pwd,'balance':balance} self.__userName = userName self.__pwd = pwd self.__balance = balance # 查看本银行的开户总数 @classmethod #类方法 def nums(cls): num = len(cls.__Users) print('银行的开户总数: %d'%num) #查看所有用户的个人信息(包含卡号,密码,用户名,余额) @classmethod def get_user(cls): for key,val in cls.__Users.items(): print('卡号: %s 用户名: %s 密码: %s 余额: %d '%(key,val['userName'],val['pwd'],val['balance'])) #验证方法 @staticmethod def check_user(carId,pwd): if( (carId in Bank.__Users) and (pwd == Bank.__Users[carId]['pwd']) ): return True else: return False #验证金额 @staticmethod def check_money(money): if isinstance(money,int): return True else: return False #取钱(需要卡号和密码验证) def q_money(self,carId,pwd,money): if Bank.check_user(carId,pwd): if Bank.check_money(money): if Bank.__Users[carId]['balance']>=money: Bank.__Users[carId]['balance'] -= money print('当前卡号%s,当前取款金额%d,当前余额%d'%(carId,money,Bank.__Users[carId]['balance'])) else: print('金额不足') else: print('您输入的金额有误!') else: print('卡号或密码错误!') #存钱 def c_money(self,carId,pwd,money): if Bank.check_user(carId,pwd): if Bank.check_money(money): Bank.__Users[carId]['balance'] += money print('当前卡号%s,当前存款金额%d,当前余额%d'%(carId,money,Bank.__Users[carId]['balance'])) else: print('您输入的金额有误!') else: print('卡号或密码错误!') #查看个人详细信息(需要卡号和密码验证) def getInfor(self,carId,pwd): if Bank.check_user(carId,pwd): print('当前卡号%s,当前存款金额%d,当前余额%d'%(carId,money,Bank.__Users[carId]['balance'])) else: print('卡号或密码错误!') xuyg = Bank('0000','xuyg','123',100) xuyg.nums() xuyg.get_user() xuyg.q_money('0000','123',50) xuyg.c_money('0000','123',500)