装饰器的简单使用

'''
实现功能:1,用户登陆
         2. 判断是否是新用户,新用户完成注册
         3. 不是新用户提示登陆成功
         4.根据用户选择是否完善个人信息,未完善年龄默认为18
         5.未成年人禁止入内
'''
def add_users(fn):
    def inner(name, pass_word, **kwargs):
        if kwargs.get('age', 18) < 18:
            print('未成年人禁止访问!')
        elif name in set(map(lambda it: it['name'], Users)):
            fn(name, pass_word, **kwargs)
        else:
            user = {}
            user['name'] = name
            user['password'] = pass_word
            user['age'] = kwargs.get('age', 18)
            user['phone_number'] = kwargs.get('phone_number', 'None')
            Users.append(user)
            print('Registration success')

    return inner
@add_users
def is_users(name, pass_word, **kwargs):
    user = Users[list(map(lambda it: it['name'], Users)).index(name)]
    if pass_word == user['password']:
        if kwargs.get('flag') == 'Y':
            user['age'] = kwargs.get('age', 18)
            user['phone_number'] = kwargs.get('phone_number', 'None')
        print('Landed successfully')
    else:
        print('Wrong Password!')
Users = [{'name': '李阳', 'password': '123'}]
for i in range(0, 5):
    name = input('Please input your name: ')
    pass_word = input('Please input your password: ')
    flag = input('是否完善信息【Y/N】: ')
    if flag == 'Y':
        age = int(input('Please input your age: '))
        phone_number = input('Please input your Phone number: ')
        is_users(name, pass_word, age=age, phone_number=phone_number, flag=flag)
    else:
        is_users(name, pass_word)
    print(Users)
发布了84 篇原创文章 · 获赞 10 · 访问量 8544

猜你喜欢

转载自blog.csdn.net/AK47red/article/details/104431861