首页 > 其他 > 详细

第二模块 3.11 函数的进阶-装饰器

时间:2019-10-28 00:39:38      阅读:81      评论:0      收藏:0      [点我收藏+]
def plus(n):
     return n+1
plus2 = lambda x : x+1
calc = plus()
print(calc(10))
account = {
    "is_authenticated":False,# 用户登录了就把这个改成True
    "username":"alex", # 假装这是DB里存的用户信息
    "password":"abc123" # 假装这是DB里存的用户信息
}

def login(func):

    def inner( *args, **kwargs ):
        if account["is_authenticated"] is False:
            username = input("user:")
            password = input("pasword:")
            if username == account["username"] and password == account["password"]:
                print("welcome login....")
                account["is_authenticated"] = True
                func(*args, **kwargs)  #认证成功,执行功能函数
            else:
                print("wrong username or password!")
        else:
            print("用户已登录,验证通过...")
            func(*args, **kwargs)  # 认证成功,执行功能函数

    return inner

def home():
    print("---首页----")



@login   # 装饰器, 语法糖
def america():
    #login()  # 执行前加上验证
    print("----欧美专区----")
def japan():
    print("----日韩专区----")

@login
def henan(vip_level):
    #login()  # 执行前加上验证
    if vip_level >3 :
        print("解锁本专区所有视频!")
    else:
        print("-----河南专区------")
    print("----河南专区----")


# america = login(america)   #返回inner 的内存地址
# henan = login(henan)

home()
america( )       #inner()
henan( 4)   # inner()

 

第二模块 3.11 函数的进阶-装饰器

原文:https://www.cnblogs.com/kissfire008/p/11749710.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!