一、什么是属性封装
我们希望将python中的属性隐藏起来,避免外部的不正当修改,只通过内部方法设置和访问属性的值
二、属性封装的优点
2.具备函数校验功能
3.隐藏真实成员变量,避免外部直接访问
三、装饰器说明
- @Perporty 用于将方法伪装成只读属性,用来获取值
- @属性名 + setter方法,定义属性的写操作,用于设置值
四、代码示例
class People:
def __init__(self,name,age,sex):
self.name = name
self._age = age
self._sex = sex
@property
def sex(self):
return self._sex
@sex.setter
def sex(self,sex):
if sex in ['男','女']:
self._sex = sex
else:
print('性别有误')
def __get_age(self):
print("执行了get_age方法")
return self._age
def __set_age(self,age):
if 100 >= age >= 0:
self._age =age
print("年龄设置成功")
else:
print('年龄不合法')
age = property(fget=__get_age,fset=__set_age)
p = People('马云',23,'男')
p.age = -100
p.age = 100
# print(p)
p.sex = '包'
# print(p)
7640

被折叠的 条评论
为什么被折叠?



