装饰器的简单使用

'''
实现功能: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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值