-
封装
''' 面向对象: 封装,继承,多态 1.将属性和方法封装到类中 2.封装私有属性: 在类定义的时候,将属性私有化,并定义公有的set和get方法。 封装私有化属性: 1. 对外隐藏属性,只能在类中访问属性 2. 可以对象私有属性的赋值和取值起到限制作用 3. 通过set方法赋值,通过get方法取值 ''' class Person: def __init__(self, name, age, gender): self.__name = name self.__age = age self.__gender = gender def set_age(self, age): if 110 > age > 0: self.__age = age else: print('年龄不在正确的范围内') def get_age(self): return self.__age def set_name(self, name): if len(name) >= 3: self.__name = name else: print('名字格式错误') def get_name(self): return self.__name p1 = Person('哈撒给', 2, '男') age = p1.get_age() print(age) p1.set_age(200) age = p1.get_age() print(age) p1.set_name('哈哈撒给') name = p1.get_name() print(name)
-
私有化封装
''' 简化封装: @property 步骤: 1. 在类中,先通过@property装饰原来的get_xxxx方法 @property def a(self): pass 2. 在类中,第一步中装饰的函数名继续装饰set,装饰的set的名字要与get函数的名字一致 @a.setter def a(self,x): pass 3. 在对象中使用的时候,就只需要: 赋值: 对象名.a = 100 ------》就回去找set方法 取值: print(对象名.a) ------》 只要想打印属性名则获取调用get方法 ''' class Person: def __init__(self, name, age, gender): self.__name = name self.__age = age self.__gender = gender @property def age(self): return self.__age @age.setter def age(self, age): # age参数就是接受等号后面的值 if 110 > age > 0: self.__age = age else: print('年龄不在正确的范围内') def set_name(self, name): if len(name) >= 3: self.__name = name else: print('名字格式错误') def get_name(self): return self.__name p1 = Person('哈撒给', 2, '男') # p1.name = '哈哈撒给' p1.age = 200 # 调用set方法 print(p1.age)
封装+私有化封装
猜你喜欢
转载自blog.csdn.net/piduocheng0577/article/details/105070660
今日推荐
周排行