将属性私有化的好处:
1.隐藏属性不被外界随意修改
class Fruit():
name = '水果'
__taste = '甜味'
f = Fruit()
print(f.__taste) # 直接访问会报错:
AttributeError: 'Fruit' object has no attribute '__taste'
2.可以修改:通过函数
def set属性名(首字母大写)(self,XXX):
3.筛选赋值的内容
if XXX是否符合条件
赋值
else:
不赋值
4.如果想获取或更改具体的某一个属性,通过定义set和get方法来获取/更改私有属性
def getName(self):
return self.Name
def setName(self, name):
self.__name = name
修饰方法,使方法可以像属性一样访问。
class Student:
def __init__(self,age):
self.__age = age
@property # 私有化属性取值
def age(self):
return self.__age
@age.setter # 私有化属性赋值
def age(self,age):
self.__age = age
s = Student(5)
s.age = 10
print(s.age)