标签:.__ name Python self -- tom property age def
私有化
封装:1.私有化属性 2.定义共有的set和get方法 __属性:就是将属性私有化,访问范围仅仅限于类中 私有化的好处: 1.隐藏属性,不被外界随意修改 2.也可以修改:通过一个函数完成 def setxxx(self,xxxx): 可以进行筛选赋值内容 if xxxx是否符合条件: 赋值 else: 不赋值 3.如果想获取具体的某一个属性, 使用get函数完成 def getxxx(self): return self.__属性
1 class Student: 2 # __age = 18 # 类属性 3 4 def __init__(self, name, age): 5 self.__name = name 6 self.__age = age 7 self.__score = 69 8 9 # 定义共有set和get方法 10 # set是为了赋值 11 def setAge(self, age): 12 if age > 0 and age <= 120: 13 self.__age = age 14 else: 15 print('年龄不在规定范围内') 16 17 # get是为了取值 18 def getAge(self): 19 return self.__age 20 21 def setName(self, name): 22 if len(name) >= 6: 23 print('名字长度不符合!') 24 else: 25 self.__name = name 26 27 def getName(self): 28 return self.__name 29 30 def __str__(self): 31 return '姓名:{},年龄:{},考试分数:{}'.format(self.__name, self.__age, self.__score) 32 33 34 tom = Student('tom', 18) 35 print(tom) 36 tom.setAge(130) 37 tom.setName('jack') 38 # tom.age = 21 39 # print(tom.__score) 无法修改私有属性 40 # tom.__score = 96 41 print(tom.getAge()) 42 print(tom.getName()) 43 ''' 44 姓名:tom,年龄:18,考试分数:69 45 年龄不在规定范围内 46 18 47 jack 48 49 '''
2.@property装饰器
1 class Student: 2 # __age = 18 # 类属性 3 4 def __init__(self, name, age): 5 self.name = name 6 self.__age = age 7 8 @property 9 def age(self): 10 return self.__age 11 12 @age.setter 13 def age(self, age): 14 if age > 0 and age <= 100: 15 self.__age = age 16 else: 17 print('年龄不在规定范围内') 18 19 def __str__(self): 20 return '姓名:{},年龄:{},考试分数:{}'.format(self.__name, self.__age, self.__score) 21 22 23 tom = Student('tom', 18) 24 tom.name = 'jack' 25 print(tom.name) 26 27 tom.age = 130 28 print(tom.age) 29 30 ''' 31 jack 32 年龄不在规定范围内 33 18 34 '''
标签:.__,name,Python,self,--,tom,property,age,def 来源: https://www.cnblogs.com/onebit123/p/16078913.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。