属性:
一个属于银行的类属性
用来存储所有银行的开户信息,包含卡号、密码、用户名、余额
(外界不能随意访问和修改。开户时要进行卡号验证,查看卡号是否已经存在)
每个对象拥有
卡号,密码,用户名,余额
(外界不能随意访问和修改。)
方法:银行类拥有
查看本银行的开户总数
查看所有用户的个人信息(包含卡号,密码,用户名,余额)
每个对象拥有
实例化对象的时候传入相关参数
初始化对象及类属性
取钱(需要卡号和密码验证)
通过验证卡号和密码对个人的余额进行操作,如果取钱的金额大于余额,则返回余额不足
存钱(需要卡号和密码验证)
通过验证卡号和密码对个人的余额进行操作,返回成功
查看个人相信信息(需要卡号和密码验证)
返回个人的卡号、用户名、余额信息
# -*- 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 \n用户名: %s \n密码: %s \n余额: %d \n'%(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)