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("请输入用户名:
 ")
            password=int(input("请输入密码:
"))
            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分离,增加一个全局变量,登陆成功后对对全局全局变量进行修改,后续登陆就走另外一个语句。

原文地址:https://www.cnblogs.com/baobaoran/p/9696925.html