Python自学笔记(16day)

练习

(1)

#写一个装饰器,可以对多个函数进行装饰,登陆时需要验证登陆用户密码,登陆成功后,后续对函
#数操作不需要再进行验证。

FLAG=False
def login(func):
    def inner(*args,**kwargs):
        global FLAG
        if FLAG:
            ret=func(*args,**kwargs)
            return ret
        else:
            FLAG=True
            user_name=input("请输入用户名:\n ")
            password=int(input("请输入密码:\n"))
            if user_name=="王然" and password==123456:
                ret=func(*args,**kwargs)
                return ret
    return inner


@login
def shoppingadd(*args,**kwargs):
    print("增加一个物品")
@login
def shoppingpop(*args,**kwargs):
    print("删除一个物品")

shoppingadd()
shoppingpop()

总结:先写出装饰器的固定模板,然后思路:登陆成功函数才执行,用if语句,登陆成功后后续不需要继续验证,则登陆成功后再调用函数,不走登陆成功后的语句用if分离,增加一个全局变量,登陆成功后对对全局全局变量进行修改,后续登陆就走另外一个语句。

posted @ 2018-09-24 22:03  诺诺诺亚索隆  阅读(113)  评论(0编辑  收藏  举报