防止外部调用对内部造成干扰 ,断绝了外部对某些方法的调用。
# 编写一个银行卡类
# 属性:银行名称 卡号。密码。姓名。余额
#方法:登录,存款
#封装:将类中的属性或方法私有化,私有化的属性和方法只能在类的内部被调用
#只需要在属性名的前面加上两个下划线就可
class Card():
def __init__(self,cnum,cpwd,cname,cbalance):
self.bankName = "建设银行"
self.cnum = cnum
self.cpwd = cpwd
self.cname = cname
self.__cbalance = cbalance #私有属性
def __login(self): #私有方法
num = input("请输入卡号:")
pwd = input("请输入密码:")
if num == self.cnum and pwd == self.cpwd:
print("验证成功!")
return "ok"
else:
print("验证失败")
return "no"
def showBalance(self):
r = self.__login()
if r == "ok":
print("余额:",self.__cbalance,"元!")
def deposit(self):
r = self.__login()#可以在类的内部调用其他方法,使用self作为对象名
if r == "ok":
money = float(input("请输入存款数目:"))
self.cbalance += money
print("存款成功!存入",money,"元!余额",self.cbalance,"元!")
#创建银行卡对象
c1=Card("1001","123","张三",1000)
#调用存款方法
#c1.showBalance() #先登录成功,然后才能查看余额.对访问余额进行了限制
c1.deposit()