Day28.为何要隐藏属性
1.为何要隐藏属性
为何要隐藏属性,代码:
# 2.为何要隐藏 print('为何要隐藏'.center(50,'-')) # I、隐藏数据属性 # 将数据隐藏起来就限制了类外对数据的直接操作,然后类内应该提供相应的接口来允许类外部间接地操作数据, # 接口之上可以附加额外的逻辑来对数据地操作进行严格地控制 # 设计者:egon class People: # 先将名字隐藏 def __init__(self, name): self.__name = name # 通过另外打开的接口访问名字,可以在单独的接口增加新的逻辑 def get_name(self): # 通过该接口就可以间接地访问到名字属性 print(self.__name) # 修改名称 def set_name(self, val): # 新增逻辑 if type(val) is not str: print('必须是字符串类型') return self.__name = val # 使用者:alex obj = People('egon') # print(obj.name) # alex无法直接用名字属性 print('传int类型'.center(50, '-')) obj.set_name(1111) obj.get_name() print('传str类型'.center(50, '-')) obj.set_name('EGON') obj.get_name() # II、隐藏函数/方法属性:目的是隔离复杂度,例如某些函数只能在某个类下使用