案例:银行卡
这里用的是类和对象的方法,这比我上次那个列表嵌套循环对银行卡业务显得更为便利
这里的类是一类,对事物分类,比如汽车是一类,猫是一类,狗是一类,银行是一类
对象就是类所包含的,具体所指的,比如猫类的这一只白猫,一个类包含多个对象
银行是一个类,具体某一张银行卡是这个类的对象。
创建类:定义某个类的对象具有的属性(变量)和方法(函数)
某一张银行卡所有的 :属性有:cnum(卡号),cpwd(密码),cname(用户名),cbalance(余额)
方法:login(登录),deposit(存款),以及取款等
这里还有封装的概念,封装:将类中属性或者方法私有化,私有化的属性或者方法只能在类的内部被调用,比如我们将属性cbalance封装self.__cbalance = cbalance(加了两个下划线)这样只能在类的内部调用,在外部是调用是更改不了内部余额的大小,这样就极大提高了安全性。比如方法的封装def __login(self)是一样的道理
#封装:将类中属性或者方法私有化,私有化的属性或者方法只能在类的内部被调用
class Card():
def __init__(self,cnum, cpwd,cname,cbalance):
self.bankName ="python银行"
self.cnum =cnum
self.cpwd = cpwd
self.cname = cname
self.__cbalance = cbalance#私有属性
def show(self):
r=self.login()
if r=="ok":
print("余额:",self.__cbalance,"元")
def __login(self):#私有fangfa
num=input("请输入卡号:")
pwd=input("请输入密码:")
if num==self.cnum and pwd==self.cpwd:
print("验证成功!")
return "ok"
else:
print("验证失败!")
return "no"
def deposit(self):
r=self.login()
if r=="ok":
money=float(input("请输入存款金额:"))
self.cbalance+=money
print("存款成功!存入:",money,"元,余额:",self.cbalance,"元")
#----------------------------------------------------------------------------------
c1=Card("1001","123","张三",1000)
c2=Card("1002","123","李四",5000)
#c2.deposit()
c2.__login()