Python3-私有化修改

 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

 

posted @ 2020-05-31 17:21  闹点小情绪q  阅读(141)  评论(0编辑  收藏  举报