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、隐藏函数/方法属性:目的是隔离复杂度,例如某些函数只能在某个类下使用

posted on 2024-06-19 17:52  与太阳肩并肩  阅读(2)  评论(0编辑  收藏  举报

导航