一、没有property函数
一般在面向对象的编程中,私有属性不暴露在外面,而是通过一个接口函数去设置,通常一个私有属性对应两个函数方法,还可以加一个删除的方法
class Test():
def __init__(self):
self.name= 'handong'
# 私有属性
self.__id = '001'
def get_id(self):
return self.__id
def set_id(self,value):
# 先进行参数检测,可以用于权限等检查
if isinstance(value,int):
self.__id = value
else:
print('输入有误,请重新输入!')
if __name__ == '__main__':
#实例化Test类,创建实例化对象
t=Test()
#访问类属性
print(t.name)
#访问类的私有化属性
print(t.get_id())
#改变类的私有属性值
t.set_id(109)
print(t.get_id())
二、有property函数
当有多个私有属性,通过以上方法设置并访问私有属性时,方法太多,外部不方便调用,python中就有property函数解决这个问题,方便外部调用和设置私有化属性。
加一行代码:id = property(get_id,set_id)