***模式概念:

      为其他对象提供一种***以控制对这个对象的访问。。 晦涩难懂的官方术语。。。简单来说,就是A和B想通话,必须通过C中间牵线,此时的A和B就都只给C说,C转换给对方。。

案例一:

      我们实现一个简单的保护***来查看和添加用户。。也就是说,有一个敏感信息类,里面可以读用户信息,也可以添加用户信息。。一般人不能之间访问,若想访问必须通过***类。 。***这里做简要的验证,当前用户的访问权限。。。

class SensitiveInfo:
    def __init__(self):
        self.users = ['nick', 'tom', 'ben', 'mike']

    def read(self):       # 无需验证
        print('There are {} users: {}'.format(len(self.users), ' '.join(self.users)))

    def add(self, user):     # 需要验证
        self.users.append(user)
        print('Added user {}'.format(user))

class Info:
    '''SensitiveInfo的保护***'''
    def __init__(self):
        self.protected = SensitiveInfo()
        self.secret = '123456'
    def read(self):
        self.protected.read()

    def add(self, user):
        sec = input("请输入你的密码:")
        self.protected.add(user) if sec == self.secret else print("That's wrong!")

if __name__ == '__main__':
    info = Info()

    while True:
        print('1: 读取用户, 2:添加用户, 3:终止')
        key = input('choose option:')
        if key == '1':
            info.read()
        elif key == '2':
            name = input("添加的用户名:")
            info.add(name)
        elif key == '3':
            exit()
        else:
            print('乱输入个锤子')

         本例中,添加用户时,需要在***这里输入密码进行验证,然后才可以添加, 而读取用户时,无需验证。。