Py003-01-08封装的意义

封装的意义

  • 封装数据属性:明确的区分内外,控制外部对隐藏属性的操作行为

将数据隐藏起来,外部无法直接访问,然后暴露接口访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class People:
def __init__(self,name,age):
self.__name = name
self.__age = age

def tellInfo(self):
print("我是%s,今年%s岁"%(self.__name,self.__age))
def setInfo(self,name,age):
if not isinstance(name,str):
print('名字必须是字符串')
return
if not isinstance(age, int):
print('age必须是数字')
return
self.__name = name
self.__age = age


p = People('hjx',18)
p.tellInfo()
p.setInfo('hjx2','aaa') # 设置年龄失败
  • 封装方法:隔离复杂度
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class ATM:
def __card(self):
print('插卡')
def __auth(self):
print('用户认证')
def __input(self):
print('输入取出金额')
def __print_bill(self):
print('打印出账单')
def __take_money(self):
print('取款')

def withdraw(self):
self.__card()
self.__auth()
self.__input()
self.__print_bill()
self.__take_money()

支付宝,微信支付,qq支付,