1 """
2 私有化:
3 封装:1.私有化属性 2.定义公有set和get方法
4 __属性:将属性私有化,访问范围仅仅在类中
5 好处:
6 1.隐藏属性不被外界随意修改
7 2.也可以修改:
8 通过函数def setXXX(self,xxx):
9 3.筛选赋值的内容
10 if xxx是否符合条件
11 赋值
12 else:
13 不赋值
14 3.如果想获取具体的某一个属性
15 使用get函数
16 def getXXX(self):
17 return self.__xxx
18
19 """
20 class Person:
21 def __init__(self,name,age):
22 self.__name = name
23 self.__age = age
24 self.__score = 59
25
26 # 定义公有set和get方法
27 # set 是为了赋值
28 def setName(self,name):
29 self.__name = name
30
31 def setAge(self,age):
32 self.__age = age
33
34
35 # get 是为了取值
36 def getName(self):
37 return self.__name
38
39 def getAge(self):
40 return self.__age
41
42 def __str__(self):
43 return "姓名:{} 年龄:{} 分数:{}".format(self.__name,self.__age,self.__score)
44
45
46 p = Person("LiHua",15)
47 print(p) # 姓名:LiHua 年龄:15 分数:59
48
49 p.setName('Seele')
50 print(p.getName()) # LiHua
51
52 p.setAge(20)
53 print(p.getAge()) # 20
升级版
1 class Person:
2 def __init__(self,name,age):
3 self.__name = name
4 self.__age = age
5
6 # 先有get
7 @property
8 def age(self):
9 return self.__age
10
11 # 再有set,因为set依赖于get
12 @age.setter
13 def age(self,age):
14 self.__age = age
15
16 p = Person("Seele",15)
17 p.age = 20
18 print(p.age)
结果:20