装饰器 练习一

 

# 用户登录装饰器
FLAG = False


def login(func):
    def inner(*args, **kwargs):
        global FLAG
        if FLAG:
            ret = func(*args, **kwargs)
            return ret
        else:
            username = input("输入登录用户名:>>>")
            password = input("输入登录用户名:>>>")
            if username == "cherry" and password == "123456":
                FLAG = True
                ret = func(*args, **kwargs)
                return ret
            else:
                print("登录失败")
    return inner


# 购物车增添商品功能
@login
def shoplist_add():
    print("为购物车增添商品")


# 删减购物车商品功能
@login
def shoplist_del():
    print("删减购物车中的商品")


shoplist_add()
shoplist_del()

 

 

def log(func):
    def inner(*args, **kwargs):
        with open('log.txt', 'a', encoding="utf-8") as f:
            f.write(func.__name__+"\n")  # 写入函数的名字 且换行
        ret = func(*args, **kwargs)
        return ret
    return inner

@log
def shoplist_add():
    print("购物车增添商品")

shoplist_add()
shoplist_add()

 

posted @ 2020-05-05 15:34  CherryYang  阅读(83)  评论(0)    收藏  举报